# Leave

Source: https://docs.astalty.com.au/guide/scheduling/leave

> Record and manage Support Worker leave and availability.

Scheduling add-on - This feature requires the Scheduling add-on, which is available on Astalty Premium. See How to enable Scheduling.

Leave allows Support Workers to submit leave requests - annual leave, personal/carer's leave, unpaid leave and more - directly in Astalty, against the leave types configured for your account. When a request is approved, Astalty can automatically create the corresponding leave application in your payroll system (Xero or Employment Hero), so leave approved in Astalty is reflected in payroll without manual data entry.

Leave is built on the existing availability system and uses the same request and approval workflow as unavailability requests, with the addition of payroll-aware leave options.

> **Employment Hero, PayCat or QuickBooks Payroll?**
>
> [PayCat](https://docs.astalty.com.au/guide/integrations/paycat) and [QuickBooks Payroll](https://docs.astalty.com.au/guide/integrations/quickbooks-payroll) use the same integration as Employment Hero. Instructions that mention Employment Hero also apply to them, with the connected platform's name shown on screen.

## Overview

Unavailability requests support two request types. When creating a request, Support Workers choose between:

- **Unavailability** - blocks the roster so the Support Worker is not scheduled during that period.
- **Leave** - records actual leave being taken, with a leave type, leave balance visibility, and optional payroll sync.\


|                        | **Unavailability**                             | **Leave**                                                     |
| ---------------------- | ---------------------------------------------- | ------------------------------------------------------------- |
| **Purpose**            | Block the roster so the person isn't scheduled | Record actual leave being taken                               |
| **Leave type**         | Not applicable                                 | Pick a leave type (e.g. Annual Leave)                         |
| **Balances at review** | Not shown                                      | Shows the employee's live leave balance from payroll          |
| **Approved hours**     | Not captured                                   | Captures the approved leave hours                             |
| **Payroll sync**       | None                                           | Can auto-create a leave application in Xero / Employment Hero |

Both request types follow the same submission, review, and approval workflow. Approving either one unassigns the Support Worker from the affected shifts, apart from any shift the approver chooses to keep. See [Choosing Which Shifts to Keep](https://docs.astalty.com.au/guide/scheduling/managing-availability#choosing-which-shifts-to-keep).

## How it Works

The flow from request to payroll looks like this:

1. **A staff member requests leave.** From the web app or the mobile app they create a request, choose **Leave**, pick the **leave type**, and set the dates and times.

![The Create Unavailability screen in the mobile app with Type set to Leave, Personal/Carer's Leave chosen as the Leave Type, Single Day selected, a Date, the All Day switch, From Time and To Time, and a Reason box above Supporting documents (optional).](https://docs.astalty.com.au/assets/leave-4.jpg)

2. **The request appears for review.** Managers and admins see it under **Scheduling > Unavailability Requests** (mixed in with unavailability requests; you can filter by type). Pending requests also appear on the [Schedule](https://docs.astalty.com.au/guide/scheduling/viewing-the-schedule#pending-leave--unavailability-on-the-schedule) - with a dashed outline and a distinct colour - where they can be reviewed and approved or declined inline.

![The Leave Details screen, opened from the highlighted Unavailability Requests menu item, showing a Pending Annual Leave request for Harriet Lawson, all day from 16/11/2026 to 20/11/2026 with its reason, and the Actions, Decline and Approve buttons.](https://docs.astalty.com.au/assets/leave-3-1781097460.png)

3. **The reviewer opens the request.** On the detail screen, if the employee is connected to payroll, Astalty shows their **live leave balances** pulled straight from Xero or Employment Hero, with the requested leave type highlighted. Astalty also shows a **suggested hours** figure so the reviewer has a sensible default.
4. **The reviewer approves or declines.** On approval they confirm the **leave hours** (and, for Employment Hero, can choose to have the leave automatically approved in payroll too), and can untick any affected shift the worker should keep instead of having it unassigned - see [Choosing Which Shifts to Keep](https://docs.astalty.com.au/guide/scheduling/managing-availability#choosing-which-shifts-to-keep). If the request has future shifts, they can also broadcast those shifts to the shift board in the same step - see [Broadcasting Affected Shifts to the Shift Board](https://docs.astalty.com.au/guide/scheduling/managing-availability#broadcasting-affected-shifts-to-the-shift-board). Declining records a reason. If the leave type is set to warn on or prevent negative balances, and the hours exceed the balance, you'll be stopped at this point - see [Negative Leave Balances](#negative-leave-balances).
5. **Astalty syncs to payroll.** If payroll sync is switched on, approving the leave automatically creates a matching leave application in Xero or Employment Hero in the background. Before sending to Xero, Astalty checks for leave already recorded on the same dates. The status card shows **Already in Xero** when the whole request is covered. If Xero covers only some dates, Astalty sends nothing and asks payroll to check Xero and add any missing paid days. This prevents the same leave being added twice.

## Supporting Documents

Support Workers can attach one or more supporting documents - such as a medical certificate - to a leave request. This works on both the web portal and the mobile app, and it's completely optional.

**On the web portal**, the leave form has a **Supporting documents** area. Drop files onto it or click to browse and pick them from your device. Accepted file types are `.pdf`, `.jpg`, `.jpeg`, `.png`, `.heic`, `.doc`, and `.docx`.

![The leave form in the web portal, with Leave Type set to Personal/Carer's Leave, Duration, Date, From Time, To Time, All day and Reason fields above a Supporting documents area to drop files or click to browse, listing the accepted file types.](https://docs.astalty.com.au/assets/leave-supporting-documents-web.png)

**On the mobile app**, the leave screen shows a **Supporting documents (optional)** section. Select **Add document** for three ways to add a file - **Photo Library** (an existing photo), **Take Photo** (take a new photo), or **Choose File**. Attached documents can be opened again from the leave details screen.

![The Create Unavailability screen in the mobile app with Type set to Leave, and the Add document menu open over the Supporting documents (optional) section, offering Photo Library, Take Photo and Choose File.](https://docs.astalty.com.au/assets/leave-supporting-documents-mobile.png)

**When reviewing a request**, any attached documents appear in a **Supporting Documents** section on the leave details screen, where you can open each one to view it.

Documents aren't locked in at submission - they can be **added or removed on an existing leave request** afterwards. Use **Upload** to attach more, or the delete icon to remove one.

![The Leave Details screen for a pending Personal/Carer's Leave request, with a Supporting Documents section listing a Medical certificate with view and delete icons, and an Upload button.](https://docs.astalty.com.au/assets/leave-supporting-documents-details.png)

## Leave Types

Leave Types define the options available to Support Workers when submitting a leave request. These are managed through [**Settings → Scheduling → Leave Types**](https://app.astalty.com.au/settings/scheduling/leave-types). Each leave type includes:

- **Name** - what staff see when requesting (e.g. "Annual Leave", "Personal / Carer's Leave").
- **Category** - the underlying kind of leave (annual leave, personal/carer's, long service, compassionate, parental, unpaid, rostered day off, time off in lieu, study leave, workers compensation, and more). The category is what Astalty uses to line your leave type up with the right leave type in your payroll system.
- **Paid or unpaid.**
- **Visible to Support Workers** - controls whether Support Workers can pick this leave type themselves when requesting.
- **Who it applies to** - you can limit a leave type to certain employment bases (e.g. full-time/part-time) and certain states.
- **Negative Leave Balance** - what happens if approving would take the employee's balance below zero. See [Negative Leave Balances](#negative-leave-balances) below.

![The Create Leave Type drawer with the Name, Category, Paid Leave, Visible to support workers, Negative Leave Balance, Restrict to Employment Bases and Restrict to States fields highlighted, and an arrow pointing to the Create button.](https://docs.astalty.com.au/assets/leave-5.png)

Leave Types you no longer use can be archived so they stop appearing on new requests, without affecting past records.

## Importing Leave Types from Payroll

If the leave types you need already exist in Xero or Employment Hero, you don't have to recreate them by hand and map them one at a time - you can import them instead.

From [**Settings → Integrations → Xero → Leave Types**](https://app.astalty.com.au/settings/integrations/xero/leave-types) (or [**Employment Hero → Leave Types**](https://app.astalty.com.au/settings/integrations/employment-hero/leave-types)), open **Actions → Import Leave Types**. Astalty lists every leave type it can find in your payroll platform that isn't linked to Astalty yet, each with a suggested Astalty category already picked - only change it if it looks wrong.

1. **Tick the leave types you use** (or select **Select All**).
2. **Check the Astalty Category** for each one - a category is required before you can import.
3. **Select Import.** Astalty creates a matching leave type in Astalty for each one you selected and links it to the payroll leave type, in a single step - no need to separately create it under Settings → Scheduling → Leave Types or map it afterwards.

A few things worth knowing:

- **Matching is by name.** If a leave type with the same name already exists in Astalty - even if it's archived - importing links to that one and unarchives it, rather than creating a duplicate.
- **Leave types already linked to Astalty** are listed separately under "Already set up", with nothing to do for them.
- **Re-importing can move a link.** If an Astalty leave type is already linked to a different payroll leave type, importing a new match moves that payroll link across.
- **Negative Leave Balance defaults to Allow on an imported leave type**, the same as a leave type you create yourself. Change it under [**Settings → Scheduling → Leave Types**](https://app.astalty.com.au/settings/scheduling/leave-types) if you need a different behaviour.
- This is a shortcut, not a requirement - you can still [create and configure leave types manually](#leave-types) instead, or alongside imported ones.

## Negative Leave Balances

Leave is often requested well ahead of time, so a Support Worker can ask for leave they haven't accrued yet but will have by the time the leave starts. The **Negative Leave Balance** setting on each leave type decides what Astalty does when the hours you're approving are more than the balance payroll reports today.

| Option      | What happens when you approve                                                                                                              |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| **Allow**   | No balance check at all - the approval goes straight through.                                                                              |
| **Warn**    | The first approval attempt stops and shows the shortfall. You can approve again to override the warning, and Astalty records the override. |
| **Prevent** | The approval is blocked. You can't proceed until the leave hours are reduced or the balance is corrected in payroll.                       |

New leave types are set to **Allow** by default.

![The Create Leave Type drawer with the Negative Leave Balance drop down open, showing the Allow, Warn and Prevent options](https://docs.astalty.com.au/assets/leave-negative-balance-setting.png)

### Approving Anyway on a Warn Leave Type

On a leave type set to **Warn**, pressing **Approve** checks the balance first. If the leave would push the balance negative, the dialog stays open, shows how big the shortfall is and what the available balance currently is, and the button changes to **Approve anyway**:

![The Approve Leave drawer with 5.43 Leave Hours and a warning that the approval would leave a negative balance of 1.93 hours against an available balance of 3.5 hours, with the button now reading Approve anyway](https://docs.astalty.com.au/assets/leave-negative-balance-approve-anyway-guide.png)

Pressing **Approve anyway** completes the approval and records the override - the time it was acknowledged and the size of the shortfall - against the request.

If you edit the **Leave Hours** the warning clears, and the new figure is checked against the balance again when you resubmit. That way a corrected amount is properly re-tested rather than being carried through on the earlier override.

> **Who can approve anyway?**
>
> Anyone who can already approve leave requests can approve anyway. There is no separate permission for overriding a negative balance.

### When the Balance Can't be Checked

If Astalty can't reach your payroll integration to read the balance, the leave type's setting decides what happens:

- **Warn** - Astalty reports that it could not verify the balance. Approve again to record an override, or wait for the integration to respond and retry. The override has no shortfall figure because the balance is unknown.
- **Prevent** - the approval is blocked with *"Unable to verify the available leave balance with your payroll integration. Please try again."*

### Things to Note About the Balance Check

- **Only balances reported in hours are checked.** Astalty compares the leave hours you're approving against the matching balance from Employment Hero or Xero, and it only uses a balance that payroll reports in **hours**. If the matching balance comes back in days, the employee isn't linked to payroll, or payroll returns no balance for that leave type, there's nothing to compare - so the approval goes through as normal, whatever the setting is.
- **The check uses today's balance, not the balance at the leave date.** Astalty reads the current balance from payroll at the moment you approve. It doesn't forecast what the balance will have accrued to by the time the leave is taken - which is exactly the situation **Warn** exists for.
- **The recorded override isn't displayed on the request.** The leave details screen shows **Reviewed By** and **Reviewed At**, so you can see who approved the request and when. The shortfall figure itself is stored against the request but isn't currently shown on screen.
- **The setting is per leave type**, and applies from the moment you change it - it affects future approvals, not ones already made.
- The same **Negative Leave Balance** field appears wherever you edit a leave type, including under [**Settings → Integrations → Xero → Leave Types**](https://app.astalty.com.au/settings/integrations/xero/leave-types) and [**Employment Hero → Leave Types**](https://app.astalty.com.au/settings/integrations/employment-hero/leave-types).

## Before you Start

To sync leave with payroll (optional but recommended), connect your **Xero** or **Employment Hero** integration and link your **employees** to their payroll records.

## Setting it up

Set Leave up in this order:

> **Already have leave types set up in payroll?**
>
> Skip steps 1 and 3 - connect your payroll integration (step 2), then use [**Import Leave Types**](#importing-leave-types-from-payroll) to create and map them from Xero or Employment Hero in one step.

1. **Create your leave types.** Go to [**Settings → Scheduling → Leave Types**](https://app.astalty.com.au/settings/scheduling/leave-types) and add the kinds of leave your staff take. Set each one's category, whether it's paid, who it applies to, whether Support Workers can select it, and how it should handle a [negative leave balance](#negative-leave-balances).

![The Settings page with Settings highlighted as step 1 in the main menu and Scheduling highlighted as step 2 in the settings menu.](https://docs.astalty.com.au/assets/leave-6.png)

![The Leave Types page in Scheduling settings, with Leave Types highlighted in the menu and an arrow pointing to the Create Leave Type button above a list of leave types with their Name and Category.](https://docs.astalty.com.au/assets/leave-2-1781098129.png)

![The Create Leave Type drawer with its fields highlighted, including Name, Category, Paid Leave, Visible to support workers, Negative Leave Balance, Restrict to Employment Bases and Restrict to States, and an arrow pointing to Create.](https://docs.astalty.com.au/assets/leave-5-1781098137.png)

2. **Connect your payroll integration** (skip if you don't want payroll sync). Connect **Xero** or **Employment Hero** and make sure your employees are linked to their payroll records.
3. **Map your leave types to payroll.** In [**Settings → Integrations → Xero → Leave Types**](https://app.astalty.com.au/settings/integrations/xero/leave-types) (or [**Employment Hero → Leave Types**](https://app.astalty.com.au/settings/integrations/employment-hero/leave-types)), match each Astalty leave type to the matching Xero leave type / Employment Hero leave category. This mapping is what tells payroll which bucket the leave belongs to.

![The Leave Types page in the Xero integration settings, with the Actions menu highlighted and open and an arrow pointing to Map Leave Types. The listed leave types show Not Linked in the Xero Leave Type column.](https://docs.astalty.com.au/assets/leave-map-payroll-1.png)

![The Leave Type Mapping drawer with an arrow pointing to the open Xero Leave Type dropdown beside Annual Leave, and Annual Leave highlighted in the list of Xero leave types.](https://docs.astalty.com.au/assets/leave-map-payroll-2.png)

![The Leave Type Mapping drawer with the Astalty Annual Leave type mapped to Annual Leave in the Xero Leave Type field, and an arrow pointing to the Save button.](https://docs.astalty.com.au/assets/leave-map-payroll-3.png)

![The Leave Types page in the Xero integration settings, searched for Annual, with Annual Leave now showing Annual Leave in the Xero Leave Type column and Annual Leave (Shiftworker) still Not Linked.](https://docs.astalty.com.au/assets/leave-map-payroll-4.png)

4. **Turn on automatic sync.** In the same integration's settings, enable **"Sync leave automatically"**. From then on, approving a leave request will create the leave application in payroll for you.

![The Xero Integration Settings overview with Automatic Leave Sync set to Disabled and an arrow pointing to the Edit button.](https://docs.astalty.com.au/assets/leave-auto-sync-1.png)

![The Update Xero Integration Settings drawer with Sync leave automatically ticked and highlighted, and an arrow pointing to the Update button.](https://docs.astalty.com.au/assets/leave-auto-sync-2.png)

> **Refresh older Xero connections when prompted**
>
> If the Xero card shows **Action required** or **Refresh Connection**, select **Refresh Connection**, sign in to Xero, select the same organisation and complete the Xero prompt before testing the sync. If the refresh fails, the connection dialog explains why.

![The connected Xero integration card with Refresh Connection highlighted, showing where to grant the additional access needed for leave sync.](https://docs.astalty.com.au/assets/xero-current-refresh-required.png)

5. **Test with one request.** Have someone submit a leave request (or create one yourself), approve it, and check the sync status card on the request to confirm it landed in payroll.

## How Leave Hours are Calculated

When leave is approved, Astalty needs to know how many hours of leave to record. It suggests a figure based on the employee's contracted **weekly hours**, spread evenly across the calendar days of the leave:

- Leave hours = weekly hours x calendar days / 7

This treats every calendar day equally rather than trying to guess which days the person works - which is the right approach for Support Workers who can be rostered any day of the week, including weekends.

A couple of refinements:

- **Part of a day:** for a single day where the requested time range is shorter than a normal day (e.g. a 4-hour appointment), Astalty uses those actual hours instead.
- **Longer leave across pay periods:** when leave spans more than one payroll period, the total hours are split evenly across those periods.

The reviewer can always adjust the hours before approving - the calculated figure is just a sensible starting point.

## Things to Note

- **Casual employees are excluded from paid-leave sync.** Under the Fair Work Act casuals aren't entitled to paid leave (they receive casual loading instead), so leave for casual employees won't be pushed to payroll.
- **The employee must be linked to payroll** (with a Xero employee ID / Employment Hero ID) and have **active employment details** for sync to work. If they're not linked, the leave is still recorded in Astalty but won't sync.
- **Leave is a single, once-off request** - it isn't set up as a recurring pattern the way some availability can be.
- **Balances are read live at review time.** Astalty doesn't store or manage leave balances itself - it reads them from your payroll system each time you open a request. Astalty is not the source of truth for accruals.
- **Sync is one-way and create-only.** Astalty creates the leave application in payroll on approval. If you later **cancel or edit** the leave, that change is **not** pushed back to payroll - you'll need to adjust it in Xero / Employment Hero directly.
- **Failed syncs can be run again.** If a sync fails (e.g. payroll was briefly unavailable), the request shows a failed status with a reason and an action to send it again. For Xero, select **Sync to Xero**.
- **Existing Xero leave is not sent twice.** Selecting **Sync to Xero** after a failure checks Xero again. A request fully covered by existing leave changes to **Already in Xero** and no longer shows the action. A partial overlap stays failed until payroll checks Xero and adds any missing paid days.
- **Support Workers only see leave types marked visible to them.**

## What's Covered and What Isn't

| **Behaviour**                                                                      | **Supported** |
| ---------------------------------------------------------------------------------- | ------------- |
| Requesting typed leave alongside unavailability                                    | ✅             |
| Attaching supporting documents (e.g. a medical certificate) on web and mobile      | ✅             |
| Adding or removing supporting documents after a request is submitted               | ✅             |
| Seeing live payroll leave balances when reviewing a request                        | ✅             |
| Automatically creating the leave application in Xero / Employment Hero on approval | ✅             |
| Importing leave types directly from Xero / Employment Hero                         | ✅             |
| Suggested leave hours, adjustable at approval                                      | ✅             |
| Running a failed sync again with **Sync to Xero**                                  | ✅             |
| Detecting leave already recorded in Xero before sending                            | ✅             |
| Warning on (and allowing) an approval that would go into a negative balance        | ✅             |
| Blocking approvals that would go into a negative balance                           | ✅             |
| Managing leave balances or accruals inside Astalty                                 | ❌             |
| Forecasting what a leave balance will be on a future date                          | ❌             |
| Showing the recorded negative-balance override on the leave request                | ❌             |
| Paid-leave sync for casual employees                                               | ❌             |
| Updating or deleting a leave application in payroll after it's synced              | ❌             |
| Pushing later cancellations or edits back to payroll                               | ❌             |
| Acting as the system of record for leave entitlements                              | ❌             |
