This module extends the functionality of Public Holidays to support States and allow you to define Local Holidays more easily in the Company Calendar.
Shows on Time Off all the holidays (with/without State) in the Public Holidays section. Public Holidays (without State) always will have grey background. Local holidays displayed with a grey background in the calendar view belong to the Employee currently viewing the calendar or to the single Employee selected from the Employee Form view.
This module is compatible with Attendances and Contracts (but those modules are not required).
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Lets you tag public holidays and calendar leaves with one or more geographic states, so each employee only sees the local holidays that apply to their address's state.
This module adds a geographic dimension to public holidays and calendar leaves. On a leave record (the entries used as public holidays or calendar exceptions) you get a new "States" field where you can pick one or more regions/states for which the holiday applies. The field appears in the leave list, the leave form, the calendar view and the search filters, so you can tag and find holidays by state.
When Odoo computes an employee's unusual days (for example the public holidays shown on the Time Off screen), it now also considers the state on the employee's address. Holidays tagged with that state are added to the employee's list of non-working days. Holidays without any state stay global and apply to everyone.
In the calendar computation, leaves are split by state: global leaves (no state) apply to all resources, while state-specific leaves only apply to resources whose linked employee has that state in their address. This affects the resource.calendar and resource.calendar.leaves models and the employee's unusual-days calculation on hr.employee.
In short: you can define local holidays once, tag them with the relevant states, and each employee automatically gets the right local holidays in their calendar and time-off view.
Depends on
Models and fields (3)
- hr.employee · extends an existing model
- resource.calendar · extends an existing model
- resource.calendar.leaves · extends an existing modelstate_ids (States)
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 2 confirmed, 7 with no information of 9 versions.
Sources · Odoo 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/hr-holidays.
terminal Installation and usage
OCA documentation · Odoo 18.0Usage
Source · Odoo 18.0To use this module, you need to:
- Go to Time Off app > Configuration > Public Holidays
- Create a Public Holiday without State with name Local Holiday
- Create an Employee 1 and set his Work Address in the same State than your Local Holiday
- Create an Employee 2 and set his Work Address in other State than your Local Holiday
- Go to Time Off > Overview and check the grey background is only on Employee 1 on the days used in Local Holiday
- Create a Time Off for Employee 1 that involves Local Holiday and check the days used are computed correctly
- Create a Time Off for Employee 2 that involves Local Holiday and check the days used are computed correctly (more days than the Time Off of Employee 1)
- Check both Employee Calendar views from the Employee form to view the grey background on Local and Public Holidays.
If you have installed Attendances and Contracts apps, and create attenances for both employees on the Local Holiday you can also check Extra Hours are computed correctly in both employees.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.