Help Center Open AgencyOS

Holiday calendars

Set public and religious holidays per country and year, publish them for leave and attendance, and define seasonal working hours such as Ramadan.

Holiday calendars is where Admin and HR maintain holidays for each country and year. Published holidays with a confirmed date are left out of leave working days and change how attendance is shown on those dates. Open it from the sidebar: People & HR → Holiday calendars. Viewing the page needs the privilege to view attendance and leave. Every change needs the privilege to manage employees, attendance reports and leave.

What a calendar is

Each calendar is one country and year. It stores the weekend pattern, time zone, default working hours, the list of holidays, and optional seasonal working hours (used for Ramadan or similar). Holidays apply to employees whose HR profile uses the same country. A holiday can apply to everyone in that country or only selected branches.

Use the country and year selectors at the top. The country list only shows countries that already have at least one calendar. If you pick a country and year that do not have a calendar yet, the page tells you to add one.

Add a country for a year

  1. Choose Add country.
  2. Choose the country from the list. The name must match how employees’ profiles name their country. The year is the year already selected on the page; the dialog does not ask for it.
  3. Optionally turn on Start with public holidays when you have a country code. AgencyOS loads names and dates from its global occasions data where available. New holidays start as drafts until you publish.
  4. Choose Add country. Default hours and weekend come from the form; you cannot change weekend, time zone or default hours on this screen later.

The employee wizard only offers a short list of countries. If you add a calendar for another country, only employees whose country was set another way (for example through import) will match.

Add, edit and remove a holiday

  1. With a calendar open, choose Add holiday.
  2. Enter the name, dates, type (Public, Religious or Movable), and who it applies to.
  3. Publish now is on by default in the dialog. With it on, the holiday is published straight away when it has a firm date (movable holidays still need a confirmed date before they affect leave). You can turn on Notify employees when publishing.
  4. To change a holiday, choose its name. To remove it, use delete on that holiday.

A holiday in Draft does not affect leave or attendance until it is published. Publishing the whole year with Publish {year} turns every draft holiday into published at once; movable holidays that still need a date stay in Confirm date and have no effect until you confirm them.

Movable holidays and confirming a date

Movable holidays (for example Eid) may appear before the exact date is known. They show Confirm date until HR sets the real start and end dates. Until then they do not reduce leave working days. Open the holiday and choose Confirm date, enter the dates, and optionally notify employees. You can confirm a date on a draft holiday; it still will not affect counts until the holiday is published.

Copy from a previous year

When a calendar existed for the previous year, Copy from {year} is available. The year in the button is the previous year. Choose whether to copy fixed holidays only or movable ones too, whether to skip names that already exist or overwrite them, and whether to copy seasonal hours. Copied holidays are always drafts. Overwriting replaces dates on an existing name and puts that holiday back to draft, so it stops applying until you publish again.

Import holidays from a CSV file

Choose Import CSV to upload a spreadsheet. Use Download the CSV template for the expected layout. Columns are date, name, type, applies_to, and optional end_date. Type is public, religious or movable. applies_to is all or branch names separated by |. The preview shows which rows will import, skip or fail. Imported rows are drafts until you publish the calendar. Overwriting an existing name in the file or during import also returns that holiday to draft.

Ramadan and seasonal working hours

Ramadan working hours (or any seasonal window) sets shorter days for a date range: start and end dates, daily start and end times, grace minutes, who it applies to, and departments to exclude. Save from the seasonal hours editor. On attendance, unlocked present and absent days in that window use the seasonal expected hours; late minutes use the seasonal start time in the calendar time zone. Locked days are not changed in the database. You can choose whether employees are notified when seasonal hours are saved or changed.

What changes in leave and attendance

  • Leave: When you record or approve leave, Working days leaves out weekends and published holidays that apply to the employee. See Leave. If you change a holiday later, leave that was already recorded keeps its stored working-day count.
  • Attendance: On an effective holiday, an unlocked absent day is shown as a holiday with no expected hours. Present days stay present. Seasonal hours adjust expected and late times on unlocked present and absent days in the seasonal range.
  • What does not update automatically: Past leave requests are not recalculated. Copying, importing or overwriting puts affected holidays back to draft until you publish again.