---
title: 'Calendar view'
slug: tempus-calendars
summary: "The per-employee monthly calendar that visualises one person's working life in a single layout: working days, scheduled hours, absences, time-points, holidays, home-office days, balance changes."
module: tempus
section: features
order: 62
tags:
  - tempus
  - reporting
  - calendar
updated: '2026-09-06'
---

> The **Tempus calendar view** is the per-employee monthly calendar that visualises one person's whole working life in a single layout: working days, scheduled hours, [absences](tempus_absences.md), [time-points](tempus_time_points.md), [public holidays](tempus_public_holidays.md), [company calendar entries](tempus_holiday_calendars.md), home-office days, and balance changes.

The calendar is a report rather than a CRUD entity: the day cells are read-only, and to change a number you edit the underlying entity and refresh. The one exception is the **More actions** menu, which can correct a whole year at once - see [Recalculating a year after a work shift changes](#recalculating-a-year-after-a-work-shift-changes). Reached at Tempus > Calendar, it opens on the current month with your own employee record pre-loaded. From there you switch employee, navigate months, filter by department, country, or status type, or click a day to drill into its entries.

## What it does

Each day cell carries several markers:

| Visual element | What it means |
|---|---|
| **Day-cell background** | Colored by dominant status: green fully worked, blue home-office, yellow partial, red absence, gray non-working. |
| **Hour totals** | Consumed vs expected hours, on partial days. |
| **Absence badges** | Colored pills for approved [absences](tempus_absences.md). |
| **Holiday markers** | Flag icons for [public holidays](tempus_public_holidays.md) and [company calendar](tempus_holiday_calendars.md) days. |
| **Home-office badge** | House icon for approved [home-office](home_office_requests.md) days. |

The employee picker is filtered to those you have permission to see: yourself for end users, your department for managers, everyone for HR. The URL carries `?employee_id=...` so the view is bookmarkable.

> [!NOTE]
> Pending [absences](tempus_absences.md) and [corrections](tempus_time_point_corrections.md) may or may not appear, depending on tenant configuration. If you expect a request and do not see it, check whether it is still pending.

## Recalculating a year after a work shift changes

When someone's work shift changes - and especially when the change is entered after the fact - two things in that year become wrong:

- **Holidays already taken** were charged at the old day length. Ten days off booked while the employee was on 8 hours a day still cost 80 hours even after the shift drops to 4 hours a day.
- **The legal holiday entitlement** was credited for the whole year at the old rate. An employee granted 26 days at 8 hours holds 208 hours of rights, even if they actually worked half-time for six months of it.

**More actions > Recalculate from work shift** corrects both for one employee and one selected year.

> [!NOTE]
> The employee's *compensatory overtime* balance is also affected by a work-shift change, because the required hours per day are what overtime is measured against. Correcting that is not part of this action yet - it is being built separately. For now, an overtime balance affected by a back-dated shift change still needs correcting by hand.

### It asks three times before it writes

1. **What it will do.** Plainly stated, before anything is calculated.
2. **What it found.** A dry run listing every entry it intends to write: which bookings get re-sized, how many days stop being charged, the entitlement correction with its amount and direction. Nothing has been written at this point. If the year already matches the work shift, this step says so and offers no Apply button.
3. **Confirmation.** One last check before the write.

### What it changes, and what it deliberately does not

- Days the new shift does not schedule - a Friday the shift sets to `00:00`, for example - stop being charged, and those hours come back. Half days stay half days rather than being rounded up.
- The entitlement correction is booked as a **new adjustment entry**, not by editing the original credit. Nothing is deleted, so the history of what was granted stays intact and readable.

> [!NOTE]
> Balances are stored in hours, and the calendar converts them into days using one work shift. After a correct recalculation the hours are right, but the *days* figure still depends on which shift that conversion used - so a part-time year can show a surprising number of days for an entirely correct balance. The dry-run dialog names the shift it used.

## Undoing a recalculation

Every run is recorded with who ran it, when, and a full before-and-after snapshot. **More actions > Recalculation history** lists them, newest first.

Selecting a run shows what reverting it would restore, then puts the ledger back exactly as it was before that run - the per-day charges, the amounts, the balances, and the adjustment entries the run created.

Three rules keep this safe:

- **Only the most recent run for a given year can be reverted.** If you ran the recalculation twice for the same year, undo the second before the first. Runs for different years are tracked separately.
- **Rows changed since the run are flagged as conflicts.** If someone edited an entry the run had touched, reverting would overwrite their change, so the conflict is listed and you have to confirm you want it overwritten.

## See also

- [Time points](tempus_time_points.md), [Absences](tempus_absences.md), [Home office requests](home_office_requests.md) - the entities the calendar visualises.
- [Time point overviews](tempus_time_point_overviews.md) - the table-format analytical view.
- [Tempus preferences](tempus_preferences.md) - the toggles that customize the calendar.
- [Employees](tempus_employees.md) - the subject of each calendar view.
