Workflows, Hiring & HRTime Off
On this page0

Unfamiliar word? See Glossary: words used in these docs. Looking for the tasks in order? Begin at Start Here.

Reference

Included in: Team and Advanced. Which Plan Includes What

Time Off

This page describes types of time off, how days are earned and carried over, time off by the hour, requests and approval, the calendar of who is out, and balance adjustments. Time off is included from the Team plan. This page is part of the reference HR Records, Time Off & Reviews.

What It Does

  • Types of time off. Each type has a name and switches for a yearly allowance, a manager’s approval, paid or unpaid, and whether it can be taken by the hour. A type that has been used is retired rather than deleted, so past requests and balances still make sense.
  • Earning and carry-over. An allowance is earned all at the start of the year or a twelfth each month, credited by a daily job. You set how many days carry over into the next year; anything above that lapses at the end of the year.
  • Working calendars. A calendar sets the working days of the week, the hours in a working day and the public holidays. Holidays are never charged against someone’s time off.
  • Requesting. A person picks the type, the first and last day and optional half days, or a few hours on one day for a type that allows it. The form shows how many working days the request uses and what is left afterwards. A request cannot overlap another live request, cover more than a year, or exceed the available days unless the type can go below zero.
  • Approval. Anyone above the requester in the reporting line, an administrator, or a member of HR who manages time off can approve or decline. Nobody can decide their own request. Declining needs a reason, which the person sees. For a type with approval switched off the time off is recorded straight away.
  • Cancelling. A person can cancel a pending request, or an approved one that has not started; the days go back to their balance.
  • Who is out. The calendar shows the viewer, everyone below them in the reporting line and their manager’s other direct reports. For a peer it shows only that they are out on approved time off, not the type.
  • Balance adjustments. HR can add or remove days on a person’s balance with a required reason. The adjustment is added to the balance history with the adjuster’s name and the reason.

Time Off (Included From Team)

Every person has My WorkTime Off: a tile per type with the days available, “My requests”, and a “Who’s out” month calendar. HR sets up the types and working calendars in the “Time off” part of HR & TalentHR Settings, which is shown to people with the permission to manage time off. For the step-by-step, see the guide Set up time off.

Types Of Time Off

Each type has a name and four switches: “Has a yearly allowance”, “Needs a manager’s approval”, “Paid” and “Can be taken by the hour”. A type with no allowance is recorded with no limit. When editing an existing type, a fifth switch, “Available to request”, takes it out of the request form without retiring it. Only the type is ever recorded on a request, never a reason. A type that has been used is retired rather than deleted, so past requests and balances still make sense.

Accrual

For a type with an allowance you set “Days per year” and how it is “Earned”: “All at the start of the year” or “A twelfth each month”. A daily job credits what each active person is owed and cannot credit a period twice. With the up-front option, someone who starts mid-year gets a share by whole months of their first year. Earning starts at the person’s start date, never before the type existed.

Carry-Over

“Days that carry over” is the limit kept into the next year; anything above it lapses at the end of the year. The lapse is taken from the person’s balance as of 31 December, only for a year that has fully ended. “Can go below zero” lets people request more than they have.

Working Calendars

A calendar sets the working days of the week, when the working day starts, how many hours it has, and a list of public holidays, and can be tied to a work location. A person uses the calendar matching their work location, otherwise the “Default calendar”, otherwise a Monday to Friday week with no holidays. Holidays are never charged against someone’s time off.

Time Off By The Hour

A type with “Can be taken by the hour” switched on can be requested for part of one day, for example two hours for an appointment. The switch is on for a new type unless you turn it off.

  • Limits per type. “Smallest amount” is 15 min, 30 min, 1 hour or 2 hours. “Most in one request” is “No limit” or 1 to 6 hours; anything longer is requested as a half or whole day. The server refuses any request by the hour shorter than 15 minutes, whatever the type says.
  • The working day. Each working calendar has “Working day starts at” (09:00 unless changed) and “Hours in a working day” (1 to 24, 8 unless changed). Hours are counted as a part of that day: 2 hours of an 8-hour day is a quarter of a day taken from the balance.
  • In the request form. For a type that allows it, the form shows a choice between “Whole days” and “A few hours”. For hours the person picks the “Day”, “Starts at”, and a length under “How long”: a preset length, “Rest of the day”, or “Other”, which adds an “Ends at” field. Only lengths the type allows are offered, and a length equal to the whole working day has to be requested as a whole day.
  • One day, one kind. Time off by the hour is for a single day and has to end on the day it starts. A day holds a whole or half day, or time off by the hour, never both, and two bookings by the hour on one day cannot overlap. When whole days are requested over a day that already has hours booked, the form offers “Replace with whole day”, which withdraws those hours and sends the new request in one step.
  • Balances. Balances and available time are shown as days and hours of the person’s working day.

Requests And Approval

  • Requesting. “Request time off” asks for the type, the first and last day and optional half days (or, for a type that allows it, a few hours on one day). The form shows how many working days the request uses on the person’s calendar and which holidays are not counted, what is left afterwards, the person’s own week with what they already have booked, and, for a request of one day or of hours on one day, who else in their team is out then. A request cannot overlap another live request, cover more than a year, or exceed the available days unless the type can go below zero.
  • Repeating. A request for a single day, or for hours on one day, can be ticked to repeat on the same weekday for 2, 4, 6, 8 or 12 weeks. Each week becomes its own request, decided and cancelled separately; a week that falls on a holiday is left out.
  • Available days. A balance is the sum of the person’s balance history, not a stored number. Available also subtracts requests still waiting for a decision, so two pending requests cannot both be approved against the same days.
  • Who decides. Anyone above the requester in the reporting line, an administrator, or a person with the permission to manage time off. Nobody can decide their own request, whatever rights they hold. The direct manager is notified of a new request (when the person has no active manager on record, the people with that permission are notified instead), and it appears under “Waiting for you” with “Approve” and “Decline”. Declining needs a reason, which the person sees.
  • Several requests from one person. When one person has more than one request waiting, the first of them carries two extra buttons. “Approve all N of (first name)’s requests” approves them together. “Decline several” opens a list where each request can be unticked to leave it waiting, with one “Reason for all of them”, or, after ticking “Give a different reason for each”, a “Reason for this one” per request. Each request is still decided, recorded and announced on its own, at most 50 in one go; any that cannot be decided are reported back and the rest go through.
  • What the approver sees. Next to each waiting request: the person’s week with this request and their other time off in it, the day’s timeline for a request by the hour, how many of the team would be away, and, for the person’s own direct manager only, the hours the person has already taken by the hour that month (HR, administrators and managers further up do not see that figure). The team is the people who share the requester’s manager. The requester’s own form counts only teammates whose time off is approved; an approver also sees teammates whose requests are still waiting. Only names and times are shown, never the type of a teammate’s time off.
  • No approval needed. For a type with approval switched off the button reads “Record time off” and the time off is recorded straight away.
  • Cancelling. A person can cancel a pending request, or an approved one that has not started; the days go back to their balance. Once it has started, only a person with the permission to manage time off can cancel it.
  • Audit. Requests, approvals, declines and cancellations are each written to the audit log.

Who’s Out

The calendar shows the people around the viewer: themselves, everyone below them in the reporting line, and their manager’s other direct reports. For a peer it shows only that they are out on approved time off. The type of time off, and requests still waiting, are shown for the viewer’s own entries, for people below them, and to people with the permission to manage time off.

Balance Adjustments

On a person’s file, the “Time off” tab shows their balances and requests. A person with the permission to manage time off can click “Adjust balance”, choose the type, enter the days to add or remove (a minus sign removes) and give a reason. The adjustment is added to the balance history with the adjuster’s name and the reason; the reason is required. Changing a type’s allowance applies from the next period and does not recalculate days already credited.

If something here is not working as you expect, start with When something goes wrong.

The plain explanation is above. This part is for IT and developers: the exact settings, permission names, API addresses and data fields behind it. Closed: select the heading above to open it. While it is closed, your browser’s find-on-page (Ctrl+F or Cmd+F) does not search this part.

Permissions Behind This Page

Where the sections above say who may see or do something, this is the permission that is checked. What each permission allows is listed in HR Records, Time Off & Reviews.

What The Page SaysPermission Checked
Setting up the types of time off and the working calendars in HR Settingsmanage_leave
Deciding any time-off request, and being notified of a request from a person with no active manager on record (Requests And Approval)manage_leave
Cancelling time off that has already started (Requests And Approval)manage_leave
Seeing the type of time off and the waiting requests of everyone on the calendar (Who’s Out)manage_leave
Adjusting a person’s balance (Balance Adjustments)manage_leave

Routes, Permission Checks And Limits

Time Off

Everything is served under /user-management/leave; the rows, with request bodies for the write routes, are in the API reference under Time Off. Requesting, cancelling and deciding need a signed-in session and no permission: the service checks the reporting line, and answers 404 for a request that is not the caller’s to decide, so the route does not confirm it exists. A request already decided answers 409. Hard limits: a request by the hour is a whole number of minutes, at least 15; a weekly repeat is 2 to 12 weeks; one request can replace at most 20 bookings by the hour; one bulk approve or decline call takes at most 50 requests.

Worked Example: Read Your Own Balances

A read with a personal API token, using the same host and token placeholders as the API reference. The route checks no permission: it answers for the person the token belongs to. A token call needs no Origin header.

curl -H "Authorization: Bearer $ZX_TOKEN" https://<your-instance>-api.zonitix.com/api/v1/user-management/leave/me

# 200. One balance per active leave type; your newest 100 requests by start date.

{ "balances": [ { "typeId": 1, "name": "Vacation", "paid": true, "tracksBalance": true,

"requiresApproval": true, "annualDays": 20, "allowNegative": false, "isActive": true,

"allowHours": true, "minPartMinutes": 60, "maxPartMinutes": 240,

"balance": 14.5, "pending": 2, "available": 12.5, "availableExact": 12.5, "taken": 5.5 } ],

"requests": [ { "id": 88, "userId": 7, "leaveTypeId": 1, "typeName": "Vacation",

"startDate": "2026-11-02", "endDate": "2026-11-03", "startHalf": false, "endHalf": false,

"startTime": null, "minutes": null, "days": 2, "status": "pending", "note": null,

"decidedByEmail": null, "decidedAt": null, "decisionNote": null, "createdAt": "2026-10-09T08:14:00.000Z" } ],

"canApprove": false, "today": "2026-10-10", "hoursPerDay": 8, "dayStart": "09:00" }

# balance, available and availableExact are null for a type that does not track a balance.

# The values above are illustrative; the field names and types are the ones the route returns.

Related reference