# How time off works

The types, allocations and requests Time Off keeps, how a balance is counted, the states of a request, what an approval changes elsewhere, who may do what, and what the app does not do.

**Time Off** keeps three kinds of records for each employee: the types of time off, the days given, called allocations, and the requests that spend them. Around them sit two kinds of company days, the public holidays and the mandatory days.

## Three records {#records}

| Record | What it holds | Where |
|---|---|---|
| Type | How time is counted, who approves, whether days must be given first | **Time Off/Configuration/Time Off Types** |
| Allocation | A number of days or hours of one type for one employee, for a validity period, fixed or earned through an accrual plan | **Management**, **Allocations** |
| Request | A period of time off of one type for one employee, with its approvals | **My Time** for the employee, **Management** for the approvers |

A type that **Requires allocation** can only be requested within the days allocated; any other type, such as **Sick Time Off**, is simply requested and counted.

## How a balance is counted {#balance}

For a type with allocations, the dashboard card adds the approved allocations still valid on the date, then takes away the days already approved and the days requested and still waiting. What remains is **available**, so the same days cannot be asked for twice. Without allocations, the card counts the days taken.

A request counts only working days: the days the employee's working schedule leaves free and the public holidays are not counted, unless the type counts public holidays. The unit is the one of the type, days, half days or hours.

When an employee holds several allocations of one type, requests use first the allocation that ends soonest, then the accrual allocations without an end, then the regular ones without an end. A type with a negative cap lets the balance go below zero up to its limit. Accrual allocations grow every day through a scheduled job, and the dashboard can show the balance on a later date: [Set up accrual plans](set-up-accrual-plans).

## The life of a request {#request-states}

| Status | Meaning |
|---|---|
| **To Approve** | Submitted, waiting for the first or only approval |
| **Second Approval** | The employee's approver agreed; an officer must validate |
| **Approved** | Counted and blocked in the calendar |
| **Refused** | Refused by an approver; the days are free again |
| **Cancelled** | Withdrawn with a reason after approval; the days are free again |

A type approved by nobody goes straight to **Approved**. An officer's approval is always the final one. A request still **To Approve** is changed or deleted rather than cancelled, and an approved request can no longer change its dates. [Approve time off requests](approve-time-off-requests) shows the buttons, [Request time off](request-time-off) the employee's side.

Allocations follow the same path, without **Cancelled**: they are refused instead.

## What an approval changes elsewhere {#approval-effects}

- The employee is told in the chatter of the request, and the approval activity is marked done.
- The working time of the period is blocked: the employee shows as absent in the Employees app on those days.
- An event that every internal user can see is added to the employee's own calendar: [Calendar](/docs/calendar).
- When Projects and timesheets is installed, timesheet lines are written on the **Time Off** task of the company's internal project: [How projects and timesheets work](/docs/projects/how-projects-and-timesheets-work).
- With the WhatsApp app, approvers and employees can also be alerted there: [WhatsApp in HR](/docs/whatsapp/whatsapp-in-hr#time-off).

A refusal, a cancellation or **Back to Approval** undoes these effects.

## Who may do what {#access-rights}

| Access right on Time Off | What it allows |
|---|---|
| None | Request time off and allocations for oneself; see the team's time off, without the descriptions of others |
| **Time Off Responsible** | Given automatically to the time off approver of an employee: the **Management** menu, the approval of those employees' requests, allocations for them |
| **Officer: Manage all requests** | Every request and allocation, the final approval, the **Reporting** menu |
| **Administrator** | The configuration, the **Balance** report, and the approval of one's own allocations |

The rights are set on the user's form: [Create a user and set access rights](/docs/general-settings/create-a-user-and-set-access-rights).

## Extra hours as time off {#extra-hours}

Attendances can give extra hours back as time off. A type with **Deduct Extra Hours**, such as **Extra Hours** in the demo, then spends those hours instead of an allocation, and shows the hours still available next to its name: [How attendance works](/docs/attendance/how-attendance-works).

## What Time Off does not do {#limits}

- It does not record presence; check-ins belong to Attendances.
- It does not pay or buy back unused days.
- **Require Supporting Document** does not refuse a request without a file in this version.
- Public holidays do not repeat by themselves: each year's are typed again.
- The ready-made **Time Off Analysis** dashboard and its tiles belong to Analysis: [Ready-made dashboards](/docs/analysis/ready-made-dashboards).

---

- Source: https://jaah.app/docs/time-off/how-time-off-works
- Updated: 2026-10-28
- Version: Time Off 19.0.1.6
