Skip to main content
Pending validationOdoo 20.0Community and Enterprise

How to configure public holidays

What is it for?​

Public holidays decide how many working days an absence has. The product needs a public holiday calendar per year and per territory, and refuses to count days in a year that does not have one.

When to use it?​

  • A new year starts and the public holidays must be generated.
  • “There is no holiday calendar for …” appears when requesting an absence.
  • You want to add a municipal holiday or a day the company gives.

Where to find it?​

  • Payroll › Configure › Company › Holiday calendars (the calendar per year, with the statutory public holidays).
  • People › Time off and attendance setup › Company Holidays (the days the absence calendar uses, with New and Load holidays).

Both menus only exist for the Administrator. Calendars belong to each company: what you see is the active company's (top right corner). For a company's employees, generate the calendar in that company.

Before you start​

  • Your profile is Administrator.
  • You know the year, the territory (Mainland in the demonstration) and the employees' company. In the demonstration it is Empresa Demonstração, Lda, and the list only has 2026: 2027 is generated in step 2.

How to use it​

  1. Open Payroll › Configure › Company › Holiday calendars. The list shows, per year, Territory, Version, Mandatory holidays, Of which on a working day and Has days to validate. In Empresa Demonstração, Lda the list opens with only 2026, with 13 mandatory holidays, 9 on a working day.
  2. For a new year, click New, choose the Year (for example, 2027) and click Generate holidays. The calendar gets the year's public holidays, the Legal reference (CT arts. 234.º-236.º; Lei n.º 7/2009, art. 11.º/4) and one line per day, with Type, Source and Costs a working day. For 2027 the screen shows 13 mandatory holidays, 8 on a working day, and Carnival (09/02/2027) as Optional (Carnival, CT art. 235.º).
  3. To add a day, click Add a line and fill it in. A mandatory public holiday cannot be removed.
  4. Click Synchronise with the Odoo calendar. The screen replies, for example: “Odoo calendar synchronised: 0 created, 0 moved, 0 removed, 0 municipal holidays without a schedule of that municipality, 0 left out because the Odoo calendar already has a public holiday on that day from another source.”

Expected result​

  • The year's public holidays appear in People › Time off and attendance setup › Company Holidays (in 2026 there are 13: from New Year's Day, 01/01/2026, to Christmas, 25/12/2026).
  • An absence request spanning a public holiday counts one working day less. Example seen on screen: Annual holidays from 07/12/2026 to 11/12/2026 (Monday to Friday) show 4.00 day(s), because Tuesday 08/12/2026 is the Immaculate Conception public holiday.
Pending validation by a certified accountant: the list of mandatory public holidays, the movable dates and the rule for Carnival and municipal holidays; the article reproduces what the product generates and the legal reference it shows.

Important notes​

  • Without the year's calendar, there are no calculations. An absence request in a year without a calendar is refused with “Invalid Operation … There is no holiday calendar for 2025 (Mainland) in company …”. The message says to create the calendar in Payroll › Configure › Company › Holiday calendars and press Generate holidays: that is step 2. Whoever makes the request (for example, the Worker) does not have that menu and must ask the Administrator to generate the year in the employee's company. Example seen: a request from 28/12/2026 to 31/12/2026 failed because 2027 was missing and, once 2027 was generated in Empresa Demonstração, Lda, it shows 4.00 day(s) and is saved.
  • Once generated, the year, the territory and the company are fixed. The screen says that, to start again, you should ask the national legal data team to archive the calendar.
  • The Load holidays button in Company Holidays loads nothing in the demonstration: it opens a window with “Holiday data is not available for 2026 for: …” and the Add holidays button stays inactive. Use Generate holidays.
  • Holiday rules. The Holiday rules menu does not appear in the menus of this version, in any of the profiles walked through; so there is nothing to configure there.

Common problems​

“There is no holiday calendar for …” appears​

The calendar for that year is missing in the employee's company. Switch to that company (top right corner), generate it in step 2 and repeat the request.

The request counts more days than expected​

Check in Company Holidays that the public holiday in the period exists and in Holiday calendars that Costs a working day is correct; a public holiday at the weekend does not count.

Versions: Odoo 20.0Community and Enterprisefiscaldoo 20.0 (master ba9c8bd7)ID DOC-0249
Was this page helpful?