# How to approve a leave request

**For:** Manager | Admin
**You'll need:** A leave request with status **'Pending'**.

You'll move a request from **'Pending'** to **'Confirmed'** — booking the hours, putting the absence on the calendar, and stamping the audit trail.

## Open the request

::::{tab-set}
:sync-group: platform

:::{tab-item} Web
:sync: web

1. In the header, go to **Company → Leave requests**.
2. Click the row of the **'Pending'** request you want to approve.
:::

:::{tab-item} Mobile app
:sync: mobile

1. Tap **More → Manager → Leave requests**.
2. Tap the request carrying the **'Pending'** badge.
:::
::::

## Approve

::::{tab-set}
:sync-group: platform

:::{tab-item} Web
:sync: web

1. (Optional) In the **'Admin notes'** textarea, add context for your decision.
2. Click **'Approve'**.
3. In the **'Approve leave request?'** dialog, click **'Approve request'** to confirm.
:::

:::{tab-item} Mobile app
:sync: mobile

1. Tap **Approve** at the bottom of the request.
2. (Optional) In the sheet that opens, type context in **'Notes (optional)'**.
3. Tap **Approve** in the sheet to submit.

The app takes you back to the queue — an approved request is no longer waiting on you. If the server rejects the decision, the error is shown and nothing is booked.
:::
::::

```{note}
For sick-leave requests, the web review form shows an alert and a **'Link to prior illness spell'** checkbox above the buttons when a prior spell falls inside the policy's linking window; the mobile approve sheet offers a **'Links to previous illness'** switch. See {doc}`link-to-prior-illness` for the full flow.
```

## What happens

- Status flips to **'Confirmed'**.
- A leave-balance transaction is written to the ledger — `BOOKING` for balance policies, `SPELL_OPEN` for spell policies. Hours are deducted from the worker's balance.
- A calendar event spawns on the schedule for the request's date range, so the absence shows up everywhere shifts and coverage are read.
- **'Reviewed by'** and **'Reviewed at'** are stamped with you and the current time.

## Verify it worked

The request reloads with a green **'Confirmed'** badge. The buttons collapse to **'Revoke'** in case you need to reverse it later. Open the {doc}`/manage-leave/leave-transactions/view-the-leave-ledger` and you'll see the new transaction at the top, with the hours signed negative.

## Related

- {doc}`review-a-leave-request`
- {doc}`revoke-a-leave-request`
- {doc}`link-to-prior-illness`
- {doc}`/manage-leave/leave-transactions/view-the-leave-ledger`
