Luna HR Docs

Leave Management

The Leave module handles everything related to employee time off — from holiday requests and sick leave to parental leave and custom absence types. Employees can request leave, managers approve it, and HR has full visibility across the organisation.

Key features

  • Leave requests — employees submit requests with date range, leave type, and optional notes
  • Approval workflows — requests go to the employee's line manager (or a custom approval chain)
  • Team calendar — see who's off at a glance, with a combined list and calendar view
  • Accrual plans — automatically calculate leave entitlements based on start date, working pattern, and policy
  • Carry forward — configure how many days employees can carry into the next leave year
  • Blackout periods — block leave requests during busy periods (company-wide or per department)
  • Working pattern validation — only allows requests on days the employee is scheduled to work
  • Leave balances — real-time breakdown of entitlement, used, pending, and remaining days
  • Fit notes — attach medical certificates to sick leave requests, automatically filed to the employee's cabinet

How it works

Requesting leave

  1. Go to Leave from the sidebar
  2. Click Request Leave
  3. Select a leave type (e.g. Annual Leave, Sick Leave)
  4. Choose your start and end dates — Luna HR will automatically calculate the number of working days based on your working pattern and exclude public holidays
  5. Add any notes for your manager (optional)
  6. Submit the request

Your request will appear as "Pending" until your manager reviews it.

Approving leave

Managers see pending requests in their Approvals tab. For each request, they can:

  • Approve — the leave is confirmed and appears on the team calendar
  • Decline — a reason is required, and the employee is notified with it
  • Review team coverage — see who else is off on those dates before making a decision

Nobody can approve or decline their own request, regardless of their permissions.

Who can decide a request

A request is routed to one approver, who can always act on it. Beyond that person, the ability to step in depends on permissions:

| Role holds | Can decide | | --- | --- | | Assigned approver for the request | That request | | leave:approve | Requests from their own team — direct reports, or people under a node where they hold a manager, lead or head membership | | leave:approve + leave:view_all | Any request in the company | | admin | Any request in the company |

leave:approve on its own is deliberately team-scoped, so a line manager in one department can't decide leave for an unrelated one. Grant View All Leave alongside it under Admin > Org Structure > Roles for HR-style cover across the whole company.

Line managers are unaffected by the scoping — they are the assigned approver for their own reports, so they can always act on those requests.

Team calendar

The team calendar shows all approved and pending leave for your team. You can:

  • Switch between list view and calendar view
  • Filter by leave type or team member
  • See coverage at a glance to avoid scheduling conflicts

Admin setup

Leave types

Configure the types of leave available in your organisation from Admin > Leave Types. Each leave type has:

  • A name and colour (used on the calendar)
  • Whether it requires approval
  • Whether it deducts from the employee's allowance
  • Whether a fit note is required (e.g. for sick leave over a threshold)

Leave years

Set your leave year period (e.g. January to December, or April to March) from Admin > Leave Years. This determines when entitlements reset.

Holiday calendars

Add public holidays for your region from Admin > Holiday Calendars. UK bank holidays are pre-loaded — just assign the calendar to the relevant offices or departments.

Accrual plans

Set up accrual plans from Admin > Accrual Plans to define how leave entitlement is calculated:

  • Full entitlement — employees get their full allowance from day one
  • Pro-rata — entitlement is calculated based on start date within the leave year

Blackout periods

Block leave requests during critical business periods from Admin > Leave Blackouts. Blackout periods prevent employees from submitting leave during dates you specify.

For each blackout, configure:

  • Name and reason — e.g. "Year-End Close" with a reason shown to employees
  • Date range — the start and end dates of the blocked period
  • Scope — company-wide, or limited to specific departments/teams via the org tree
  • Leave type filter — optionally restrict to certain leave types only (e.g. block annual leave but allow sick leave)
  • Active toggle — enable or disable without deleting

When an employee tries to request leave that overlaps with an active blackout, they'll see a clear message explaining why the dates are blocked.

Only holders of admin or View All Leave (leave:view_all) can book their own leave through a blackout — the ability to approve leave does not carry an exemption, so a blackout applies to line managers like everyone else. A leave type can also be marked to bypass blackouts entirely, which is the usual way to keep sick leave bookable during a freeze.

Double-booking

An employee can't book the same days off twice. If a new request overlaps leave they already have pending or approved, it's rejected with a message naming the clashing request — they need to cancel or edit that one first. Cancelled and rejected requests free their dates back up, and historical imports never block new bookings.

Half-days are handled sensibly: a morning and an afternoon booking on the same date don't clash, but the same half booked twice does.

Carry forward

Manage carried-forward leave balances from Admin > Leave Carry Forward. At the end of each leave year:

  • Unused leave can be carried forward up to the limit set in your policy
  • Carried-forward days can have an expiry date — after which they're lost if not used
  • Send reminder emails to employees with carried-forward days approaching expiry
  • View a summary of all employees' carry-forward balances

Policies

Leave entitlements (days per year, carry forward limits, etc.) are configured via Policies. Policies can be set at any level of your org structure — company-wide defaults with overrides for specific offices or departments.

  • Policies — how leave entitlements are configured and inherited
  • Company Structure — how departments and teams affect leave policy
  • Approvals — how approval workflows are configured