Approving leave, guarding balances, keeping the calendar honest

As a vacation manager you have the final say on leave requests and custody of everyone’s leave balances. Your sidebar card reads VACATION MGR, and on top of the regular employee pages you get:
Each vacation type defines its path: TL → VM (team lead first, then you), VM only, TL only, or Auto-approved. You act at the VM stage; requests still sitting with a team lead show a TL chip and no action buttons for you. Nobody can approve their own request — an admin or another VM handles yours. The type catalogue itself (limits, flows) is configured by administrators.
Approvers (you + the requester’s team lead) are pinged on every event, in-app / push / e-mail according to your Notification preferences. E-mails arrive within a few minutes (several events may be combined into one digest). The subjects match the notification titles:
| Subject / title | When |
|---|---|
| Leave request awaiting approval | A new request needs a decision. |
| Leave request needs manual approval | A flagged request (section 4) — includes the auto-reject deadline. |
| Leave request needs a decision | Reminder while a flagged request is still waiting (every ~8 h). |
| Leave request auto-rejected | Nobody decided before the deadline — the system rejected it. |
The requester is notified automatically at every step — Vacation approved, Vacation activated, or Vacation rejected (with your reason). You don’t need to tell them separately.
Tune what reaches your mailbox in Notifications → Preferences — but keep the vacation category on: flagged requests are time-boxed.

Requests (sidebar, or Vacations → Requests) lists everything pending, one row per request: employee, requested type (shown with its own icon and colour), dates, days, the stage chip (TL / VM), the approval stepper, and the comment. Filter by status, office, team, employee or leave type, plus a date range or free-text search.
Opening Requests with nothing left pending — say, from a stale notification — takes you to Entries instead, with a note that it has already been handled; clearing the last request yourself just leaves the queue empty, with no such note. A queue you have filtered down to nothing yourself stays put rather than redirecting you.

The dialog shows the request and, at your stage, a Granted type dropdown — you may grant a different type than requested (e.g. convert Annual leave to Unpaid when the balance is short). The employee sees “asked: …” next to the granted type. Add an optional note and click Approve as VM.
After the final approval the leave activates automatically: working days are counted and the hours are deducted from the employee’s balance, with a ledger entry. If it goes below zero, that’s allowed but audited.
Both stages in one click. On a request still sitting at the team-lead stage, if you are also the person who would sign it as team lead, the dialog offers Approve both stages at once. Ticking it signs the TL and VM stages together (and unlocks the Granted type dropdown), so you don’t approve the same request twice. The checkbox only appears when you already hold both powers — it never skips a review someone else owes. Opening the request itself offers the same shortcut directly: its footer carries an Approve fully button next to Approve as VM, which opens the same dialog with the box already ticked.
Rejection is terminal — the request cannot continue. At the VM stage a written reason is required; the employee receives it word-for-word, so make it actionable (“resubmit as unpaid leave”).


A request gets flagged when it exceeds the consecutive working-day limit, was requested with too little notice, or would overdraw the leave balance. Flagged requests always need a human decision. On most types, one nobody decides on before the deadline (72 h per stage by default) is auto-rejected, with reminders every ~8 h while it waits; even an ordinary, unflagged pending request auto-approves once it has waited long enough at a stage (48 h by default). An administrator can mark a type Restrict auto approve/reject to switch both timers off — its requests, flagged or not, only ever move on a human decision, and the reminders settle to about one a day for as long as one waits. For a negative-balance flag, approving with the type switched to Unpaid is often the clean fix.
Back-dated leave lands here too. “Too little notice” is measured against the leave’s own start date, so anything an employee files for today, tomorrow or a past date (a sick day entered afterwards) is flagged the moment it is created — and it never auto-approves. The 72 h clock, however, runs from when the request was filed, not from the leave dates: a leave entered for last week is not rejected on the spot, it waits three days for you like any other flagged request. Decide those promptly — an auto-rejected sick day has to be re-filed. (Leave an admin or manager files on behalf of someone is never flagged for notice.)
Vacations → Balances gives you any employee’s balance: pick a person to see their Available / Accrued / Used, the 12-month trend, and the full Statement ledger (toggle “Show auto accruals” for the daily accrual rows). Year report downloads their 12-month PDF statement.
Adjust balance posts a manual correction: a signed amount in hours plus a mandatory note (e.g. “+8 — overtime compensation”). It lands in the ledger as a CUSTOM row and is written to the audit log. You cannot adjust your own balance.
Balances are counted in hours against each person’s own working day, so part-time and full-time are directly comparable. Accrual is automatic (daily); there is no year-end reset.


Vacations → Report is your period overview: one row per employee, one column per vacation type, cells showing used working days (a +N marks still-pending requests in the window). Pinned totals split leave by balance effect and show each person’s current balance. Filter by dates, office or team, and Export XLSX for payroll or audits.

| Situation | What to do |
|---|---|
| “Leave request awaiting approval” arrives | Open Requests, review dates and the comment, Approve or Reject. The calendar helps spot team overlaps. |
| A request is Flagged | Decide before the deadline in the badge/e-mail — otherwise it auto-rejects, unless its type restricts auto-resolution. Negative balance? Consider granting it as Unpaid. |
| Employee asks “where is my request?” | Open it — the Approval journey shows the stage. A TL chip means it’s still with their team lead, not you. |
| Balance looks wrong to someone | Balances → pick the person → Statement ledger explains every hour. Fix genuine errors with Adjust balance + a clear note. |
| Payroll asks for leave data | Report → set the period → Export XLSX. |
| Wrong leave type was approved | Type changes on an approved leave are an admin operation — escalate to your administrator. |
HR.Click — Vacation Manager Guide · v1.1 · August 2026. Product screens shown with sample data; names of persons are fictitious examples.