---
title: Part-time and custom work schedules
description: Working days and hours per person, per-date leave counting, hours-based accrual proration and mid-year balance correction
order: 3
---

A work schedule is which weekdays someone works and how many hours, effective from a
date. Leave counting and timesheet quotas resolve it per date; accrual proration reads its
weekly hours.

## What a schedule is

A schedule is a slice effective from a date: working weekdays plus hours. The editor's
**Work model** picks the hours shape - **Fixed** takes hours per selected weekday and sums
them into the weekly total, **Flexible** takes a weekly target split evenly. A per-day map
must cover every working day.

Schedules are a history, not a single row - a change adds a slice that takes over from its
effective date, and a second save on the same date replaces that slice. The **Schedule**
tab carries the slice in force and the full version history: **My profile → Schedule** in
the account menu for your own, **People → Teams → [team] → [person] → Schedule** for a
report, **People → People → [person] → Schedule** for an admin. Only an admin sees the
**Change schedule** form.

## How it changes leave counting

Each date in a request resolves the slice in force on that date, so a request that crosses
a schedule change counts the days on either side under the right one. The policy's
**Exclude weekends** switch is what applies the schedule to the count: with it on, a date
counts only if it falls on one of that slice's working weekdays; with it off, every
calendar day in the range is deducted. **Exclude public holidays** removes holidays
separately.

## How accrual is prorated

Accrual is prorated by **weekly hours** from the schedule: a policy that grants
26 days a year at a full 40-hour week grants proportionally less at 32 hours. Proration reads
weekly hours only. The schedule form's **FTE** field is not an input to leave or
accrual math.

Changing a schedule recomputes the **current year's** issued grants on the spot:
each granted policy is retargeted against the new weekly hours, month by month, and
the difference posts as a ledger row reading `Pro-rata FTE correction {year} (schedule
change)`. A correction never claws back time already taken or reserved; earlier years
are untouched - fix those with a manual balance adjustment.

## Expected timesheet hours

A day's scheduled hours come from the slice in force that day: the per-day map if one is
set, otherwise the weekly total split evenly across the working days. Expected hours are
those minutes minus approved leave; a non-working day, a public holiday or a date
before the employment start expects 0.

## Worked example

Aleksandra joined 1 March and holds this year's Vacation grant, 21.67 days under the
default 26-day policy. From 1 September she moves to Monday-Thursday at 8 hours a day: a
32-hour week instead of 40.

That policy excludes weekends, so a week-long request after that date charges 4 days, not
5: Friday is no longer a working day, and drops out like a weekend.

Her balance also moves: the months from her March start are reweighted one by one - 40-hour
weeks through August, 32-hour weeks from September, so those four prorate to 80%. The
target lands on 9,568 minutes against her original 10,400 grant, and the 832-minute
difference (1.73 days at her new 8-hour day) posts to the ledger on save.

> [!AGENT]
> Set Aleksandra's work schedule to Monday-Thursday at 8 hours a day, effective 1 September, and tell me what correction it posts to her Vacation balance.

## Related

- [How leave works in SquadBear](/docs/leave/concepts/)
- [How leave approvals work](/docs/leave/approvals/)
- [Understand expected vs logged hours](/docs/time/timesheets/)
