---
title: Holiday calendars
description: One calendar per country, country presets, how the right one is picked per employee, and what happens without one
order: 4
---

A holiday calendar is a set of public-holiday dates for one country. When a leave policy
excludes holidays, the dates on the employee's own calendar are the ones skipped.

## Creating a calendar

At **Workspace settings → Holiday calendars**, click **New calendar**, pick a country, and
name it. The country picker prefills the name, and when a prepared set exists it names how
many dates the calendar will be seeded with - every prepared year at once. One calendar per
country per workspace: a second create for the same country is rejected with a 409.

## Country presets

A preset is one country's nationwide public holidays for 2026 and 2027, with the moveable
feasts (Easter, Easter Monday, Pentecost, Corpus Christi) already resolved to each year's
date. Poland is 14 dates per year, Germany 9, Sweden 16. Sets ship for 25 countries; the
European ones are catalogued at
[public holiday calendars](https://squadbear.com/public-holidays/). Presets carry
nationwide dates only; regional days - German *Länder*, Swiss cantons, Austrian school
holidays - are excluded. Applying a preset fills the calendar in; an admin adds or removes
individual dates from there, including regional ones, and enters years beyond 2027 by hand.
A country with no prepared set starts empty under the chosen country code.

## How the right calendar is picked

Each employee resolves to one calendar: their own country override if they have one,
otherwise the workspace default. Matching is exact on the ISO 3166-1 alpha-2 code - `DE`
never falls back to a regional or neighbouring calendar - and the workspace country itself
defaults to `US`. Set it at **Workspace settings → Workspace → General**, field
**Organisation country**; saving a country that ships a preset creates and fills its
calendar on the spot.

A holiday affects leave day-counting only when the policy's **Exclude public holidays**
setting is on; otherwise the dates count as ordinary working days. Attendance and time
tracking read the same calendars with no policy switch in front of them - a holiday is zero
expected time for everyone.

## No matching calendar

A resolved country with no calendar excludes nothing, and the request is still accepted.
With **Exclude public holidays** on, the evaluation carries the warning `No holiday calendar
is configured for country {CC}; public holidays were not excluded from this request.` -
returned by `validate_time_off` and shown to the approver on the review panel.
`set_employee_country` flags the same gap the moment an override is set.

## Worked example

Northlake registers with Poland as its country, so provisioning creates a calendar named
**Public holidays** and fills it from the PL preset - 14 dates in 2026 and 14 in 2027. They
hire a developer based in Germany and set her country at
**People → People → [person] → Edit profile → Country**. Until a German calendar exists her
requests carry the missing-calendar warning; an admin creates one at
**Workspace settings → Holiday calendars**, where the DE preset prefills 18 dates across
the two years.

> [!AGENT]
> Create a holiday calendar for Germany, then list the holidays on Poland's calendar for this year.

## Related

- [How leave works in SquadBear](/docs/leave/concepts/)
- [Part-time and custom work schedules](/docs/leave/work-schedules/)
- [Turn modules on or off](/docs/admin/modules/)
