> ## Documentation Index
> Fetch the complete documentation index at: https://absentify.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Give users their birthday off

> Set up a birthday day off in absentify as a paid day that does not reduce annual leave, with optional entitlement tracking and full automation via Power Automate.

Many companies give users a paid day off on their birthday, on top of their regular vacation allowance. absentify does not have a dedicated birthday-leave switch, but you can model the policy with the building blocks you already have. This guide shows three setups, from the simplest to a fully automated one:

1. [A "Birthday off" leave type](#option-1-a-birthday-off-leave-type) that users book themselves and that never touches annual leave. Works on every plan.
2. [The same leave type with a tracked entitlement](#option-2-track-the-entitlement-with-its-own-allowance) of exactly one day per year.
3. [A Power Automate flow](#option-3-book-the-day-automatically-with-power-automate) that books the day automatically on each user's birthday.

## Before you start: store the birthdays

All three setups rely on the **Birthday** field in the user profile. Open **Settings** > **Users**, edit the user, and enter the date on the [Profile tab](/docs/en/roles/hr_admins/settings/users/edit/profile). For many users at once, use the **Date of Birth** column in the [Excel/CSV user import](/docs/en/roles/hr_admins/settings/users/invite_users), or set the field through the [public API](/docs/en/api-reference/introduction).

Colleagues who can see the person only ever see the day and month (as a gift icon in the calendar); the year stays hidden from everyone except admins and the managers of the person's departments.

## Option 1: a "Birthday off" leave type

The lightest setup: a leave type that is booked like any other absence but is not deducted from any allowance. Available on every plan, including Free.

<iframe src="https://demo.arcade.software/Z3YbBJeQ4pmdwESKpWhl?embed&embed_mobile=inline&embed_desktop=inline&show_copy_link=false" title="Create a birthday off leave type" frameborder="0" loading="lazy" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="clipboard-write" className="responsive-iframe" />

1. Go to **Settings** > **Leave types** and select **Add a new leave type**.
2. On the **Basic** tab, name it, for example, "Birthday off" and pick a color and icon.
3. On the **Behavior** tab:
   * Keep **Count as leave** enabled, so the user shows as absent and out-of-office replies work.
   * Disable **Requires approval** if the day should be booked without an approver stepping in. Keep it enabled if you want approvers to check the date.
   * Optionally disable **Include in maximum absent**, so the birthday does not block colleagues' requests through department absence limits.
4. On the **Allowance** tab, keep **Deduct from allowance** disabled. This is what keeps the day from reducing annual leave.
5. Save, and tell your team to book their birthday with this leave type.

The details of each setting are described in [Create a leave type](/docs/en/roles/hr_admins/settings/leave_types/create-leave-types).

With this setup nothing limits how often the leave type can be used, and nobody is forced to book their birthday. That is fine for most teams: the day is visible to approvers and admins in the [requests overview](/docs/en/roles/hr_admins/settings/users/edit/requests-history), so misuse is easy to spot. If you want a hard limit of one day per year, add Option 2.

## Option 2: track the entitlement with its own allowance

To give every user exactly one birthday day per year, and see who has already taken it, give the leave type its own allowance:

1. Go to **Settings** > **Allowances**, select **New allowance**, and create an allowance named, for example, "Birthday leave" in days.
2. Create its first rule:
   * **How is the allowance granted?**: **Yearly**.
   * **Allowance per year**: 1.
   * Under **Carry-over & expiry**, set carry-over to **Nothing**, so an unused birthday day expires at the end of the allowance year instead of accumulating.
3. Go to **Settings** > **Leave types**, edit your "Birthday off" leave type, and on the **Allowance** tab enable **Deduct from allowance** and select the "Birthday leave" allowance.

The full rule options are described in [Allowances](/docs/en/roles/hr_admins/settings/allowances). Two things to know: like any yearly rule, the entitlement follows the allowance year, so a user who joins mid-year starts with a prorated first year, which absentify then [rounds up to the next bookable increment](/docs/en/roles/hr_admins/settings/allowances#rounding-of-the-yearly-total). Depending on whether half days are bookable, a mid-year joiner may therefore see half a day instead of a full one in their first year. Also note that the number of allowances depends on your [plan](https://absentify.com/pricing), and that absentify does not pin the day to the birthday itself: the user could book their one "Birthday off" day on any date. Many companies treat that flexibility as a feature.

## Option 3: book the day automatically with Power Automate

If the day should appear in everyone's calendar without anyone booking it, combine the leave type from Option 1 with a small [Power Automate](/docs/en/roles/hr_admins/settings/integrations/power_automate) flow. The flow needs the absentify API operations, which require the **Plus** plan; the absentify connector is a premium connector in Power Automate.

The flow, once a day:

1. **Recurrence** trigger, for example every day at 06:00.
2. **Get all members** (absentify connector), with **Birthday Month** set to the current month: `int(convertTimeZone(utcNow(), 'UTC', 'W. Europe Standard Time', 'MM'))`. Replace `W. Europe Standard Time` with your own time zone here and in the next steps, and select the same time zone on the Recurrence trigger. Going through `convertTimeZone()` instead of plain `utcNow()` matters: depending on your time zone, the UTC date can still be yesterday's or already tomorrow's date, and the flow would compare against the wrong day.
3. **Apply to each** returned member, with a **Condition** comparing day and month of the birthday to today:
   * `formatDateTime(item()?['birthday'], 'MM-dd')` equals `convertTimeZone(utcNow(), 'UTC', 'W. Europe Standard Time', 'MM-dd')`.
4. Inside the "yes" branch, **Create a request** with the member's ID, the "Birthday off" leave type, and today as both start and end date: `convertTimeZone(utcNow(), 'UTC', 'W. Europe Standard Time', 'yyyy-MM-dd')`.

If **Requires approval** is disabled on the leave type, the request is approved the moment the flow creates it, and it syncs to Outlook and Teams like any other absence.

Three things to decide for your flow:

* **Weekends and public holidays**: the flow above books the birthday even if it falls on a non-working day, where it has no effect. If your policy grants the nearest workday instead, add that logic to the flow, or skip non-working days and let the user book a replacement day manually.
* **Duplicates**: if the flow might run twice on the same day, add a **Get all requests** check for the member, leave type, and date before creating the request.
* **Missing birthdays**: members without a stored birthday are simply never matched. Combine the flow with a completeness check, or fill the field via user import.

Every step is also available without the connector through the [HTTP action with an API key](/docs/en/roles/hr_admins/settings/integrations/power_automate_http_action).

## FAQ

<AccordionGroup>
  <Accordion title="Can absentify book the birthday off automatically without Power Automate?">
    Not currently. Built in, absentify shows birthdays as a gift icon in the calendar and can [remind approvers and colleagues](/docs/en/roles/hr_admins/settings/users/edit/notifications) of upcoming birthdays, but it does not create absences on its own. The Power Automate flow in this guide closes that gap.
  </Accordion>

  <Accordion title="Does the birthday day off reduce the annual leave allowance?">
    No, as long as the leave type is configured correctly. With **Deduct from allowance** disabled (Option 1) nothing is deducted anywhere. With a dedicated "Birthday leave" allowance (Option 2) the day is deducted from that separate one-day allowance, and the annual leave balance stays untouched.
  </Accordion>

  <Accordion title="What if the birthday falls on a weekend or public holiday?">
    A request on a non-working day does not deduct anything and has no visible effect, absentify already knows the user is off. Decide in your policy whether the day is then lost, moved to the nearest workday, or bookable on a date of the user's choice. The flexible variant is easiest with Option 1 or 2, where the user books the day themselves.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.