> ## Documentation Index
> Fetch the complete documentation index at: https://docs.timetracker.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Company holidays

> Set up the days your workspace is closed, make them repeat every year, assign them to specific people, and keep them off everyone's leave balance.

A company holiday is a day the workspace – or a named group of people – is off.
Holidays are **skipped** when a leave request is counted, so a national holiday
never quietly eats someone's balance.

Manage them in **Settings → Time off → Holidays**.

## What a holiday does

| It does                                       | It does not                     |
| --------------------------------------------- | ------------------------------- |
| Get skipped when counting a leave request.    | Change anyone's expected hours. |
| Show on the Time Off timeline.                | Appear on My Schedule.          |
| Show on the Planner as a named all-day event. | Stop anyone tracking time.      |

<Warning>
  Company holidays and **schedule exceptions** are two different lists.

  * A **company holiday** stops the day consuming leave balance.
  * A **schedule exception** of type *Public holiday* sets expected hours to zero.

  If you want both effects – the day is closed **and** it does not count against
  leave – add the day in both places. See
  [/schedules/working-hours-and-days-off](/schedules/working-hours-and-days-off).
</Warning>

## The holidays table

| Column        | What it shows                                                      |
| ------------- | ------------------------------------------------------------------ |
| **Holiday**   | Colour swatch, name, and a lifecycle badge if archived or trashed. |
| **Period**    | A single date, or a start–end range.                               |
| **Annual**    | `Yes` or `No`.                                                     |
| **Assignees** | `Everyone` or `N members`.                                         |

Each row has a pencil to edit and a lifecycle menu to archive, restore or delete.
A scope filter switches between active, archived and trashed. **New holiday**
opens the same dialog in create mode.

Empty list: *"No company holidays yet – add one to mark days off."*

## How to add a holiday

<Steps>
  <Step title="Open Settings → Time off → Holidays">
    You need `leave.managePolicy` – Owner or Admin.
  </Step>

  <Step title="Click New holiday">
    The **New company holiday** dialog opens.
  </Step>

  <Step title="Name it and pick a colour">
    For example `New Year's Day`. The colour is what shows on the timeline and
    the Planner.
  </Step>

  <Step title="Set the dates">
    Pick a start date. Leave the end empty for a single-day holiday, or set it for
    a shutdown that spans several days.
  </Step>

  <Step title="Decide who observes it">
    Leave **Applies to everyone** on for a company-wide day. Switch it off to name
    specific people.
  </Step>

  <Step title="Set Occurs annually if it repeats">
    On, and the same dates repeat every year without you re-adding them.
  </Step>

  <Step title="Save">
    Click **Create holiday**.
  </Step>
</Steps>

## The settings

### Dates

A single date, or an inclusive range. A range is right for a shutdown week – set
23 December to 1 January and the whole block is covered.

If you leave the end empty it defaults to the start, giving a one-day holiday.

### Applies to everyone

On, and every current and future member observes it.

Off, and a member picker appears. Use this when a holiday is national rather than
company-wide – a Portuguese public holiday for the Lisbon team, say, and nobody
else.

<Note>
  A holiday only skips leave for the people it applies to. Someone not on the list
  sees no effect at all – the day counts against their balance as normal.
</Note>

### Occurs annually

On, and the same month and day repeat every year. TimeTracker projects the stored
range onto whichever year it is checking, so you add `Christmas Day` once.

Off, and the holiday exists only on those exact dates. Use this for anything that
moves, such as Easter or a company offsite.

<Tip>
  A 29 February holiday set to repeat annually only occurs in leap years. It does
  not slide to 1 March.
</Tip>

### Auto-create time entries

The dialog describes this as *"Posts matching time entries for members on these
days."*

<Warning>
  Holidays do not currently appear as tracked time on a timesheet. They show on the
  Time Off timeline and the Planner, and they are skipped when counting leave.
</Warning>

## Example

Northwind Studio is in London, with Ana Ferreira in Lisbon.

| Holiday              | Dates          | Annual | Applies to   |
| -------------------- | -------------- | ------ | ------------ |
| `New Year's Day`     | 1 Jan          | Yes    | Everyone     |
| `Christmas shutdown` | 24 Dec – 1 Jan | Yes    | Everyone     |
| `Portugal Day`       | 10 Jun         | Yes    | Ana Ferreira |
| `Studio offsite`     | 12 – 13 Sep    | No     | Everyone     |

Now Sarah Lin books **22 December to 2 January** on `Annual leave`:

| Day                    | Counted? | Why                         |
| ---------------------- | -------- | --------------------------- |
| Mon 22 Dec             | Yes      | Working day                 |
| Tue 23 Dec             | Yes      | Working day                 |
| Wed 24 Dec – Thu 1 Jan | No       | Inside `Christmas shutdown` |
| Fri 2 Jan              | Yes      | Working day                 |

Weekends inside the range are skipped too, because her schedule marks them
non-working. The request costs her **3 days**, not 12.

If Ana books 9 to 11 June, **Portugal Day** on the 10th is skipped for her –
because she is on the assignee list. It would not be skipped for Sarah.

## How holidays reach the Planner

The Planner draws company holidays as named all-day events, in the holiday's own
colour, for the person whose calendar is on screen. Turn them on and off with the
**Holidays** layer in the **Calendars** sidebar. See
[/planner/overview](/planner/overview).

## Archiving and deleting

Use the lifecycle menu on the row.

| Action      | Effect                                              |
| ----------- | --------------------------------------------------- |
| **Archive** | The holiday stops applying but stays on the record. |
| **Restore** | Brings it back.                                     |
| **Delete**  | Moves it to Trash, restorable until purged.         |

Archiving a holiday does not recalculate past leave requests. Amounts were
counted when the request was made and are not rewritten.

## Permissions

Creating, editing, archiving and deleting holidays all need `leave.managePolicy`
– **Owner and Admin only**.

Everyone with `leave.request` sees holidays that apply to them on the timeline and
in their request counting. Approvers with `leave.viewOthers` see all holidays.

Holidays are available on **Free**. The Time Off app must be switched on.

## Common questions

<AccordionGroup>
  <Accordion title="Do holidays reduce expected hours on a timesheet?">
    No. Add a schedule exception of type **Public holiday** for that as well.
  </Accordion>

  <Accordion title="Can someone book leave on a company holiday?">
    They can select the date, but it is skipped when the amount is counted, so it
    consumes nothing. A range covering only holidays is rejected with "Those dates
    cover no working days…".
  </Accordion>

  <Accordion title="Is there a list of public holidays I can import?">
    No. Add the days your workspace actually observes.
  </Accordion>

  <Accordion title="How do I handle a holiday that moves each year?">
    Switch **Occurs annually** off and add each year's dates as its own entry.
  </Accordion>

  <Accordion title="Can holidays overlap?">
    Yes. Overlapping holidays mean the day is skipped once – a day is never
    skipped twice.
  </Accordion>

  <Accordion title="Does a holiday stop people tracking time?">
    No. It only affects how leave is counted and what shows on the calendars.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                     | What to check                                                                              |
| ------------------------------------------- | ------------------------------------------------------------------------------------------ |
| "Give this holiday a name."                 | Fill in **Name**.                                                                          |
| "The end date falls before the start date." | Fix the range.                                                                             |
| A holiday still consumed someone's balance  | They are not on the assignee list, or the holiday is archived.                             |
| A holiday is missing from My Schedule       | My Schedule reads schedule exceptions, not the holiday list. Add a schedule exception too. |
| The annual holiday did not appear this year | Check **Occurs annually** is on. A 29 February holiday only recurs in leap years.          |
| No **Holidays** page in Settings            | The Time Off app is off, or you lack `leave.managePolicy`.                                 |

## Related guides

<CardGroup cols={2}>
  <Card title="Request time off" href="/time-off/request-time-off">
    How holidays change what a request costs.
  </Card>

  <Card title="Leave policies" href="/time-off/leave-policies">
    The other half of the Time off settings.
  </Card>

  <Card title="Working hours and days off" href="/schedules/working-hours-and-days-off">
    Schedule exceptions, and why they are separate.
  </Card>

  <Card title="Planner overview" href="/planner/overview">
    Holidays on the planning grid.
  </Card>

  <Card title="Time off permissions" href="/time-off/time-off-permissions">
    Who can add a holiday.
  </Card>
</CardGroup>
