On-call Rota PlannerGuide

How to build a fair on-call rotation for a small team

Updated 2026-10-10 · by Hieu Tran, written with AI agents and checked against the sources below

On a small team, on-call fairness is about more than the number of shifts. Weekends and public holidays cost more than weekdays, leave has to be respected, and nobody should get two shifts in a row. Here's a simple method that holds up.

Free tool: Plan a fair rota: leave, public holidays, weighted fairness and an .ics calendar

Runs in your browser. Public holidays come from Nager.Date; change any shift and the fairness tally updates.

1. Choose a shift length

2. Weight the days

Count each day: weekday 1, weekend day about 1.5, public holiday about 2. Fairness is the total weight per person, not the number of shifts. Pick weights with the team and write them down.

3. Assign greedily, with two rules

  1. Never assign someone on leave for any day of the shift.
  2. Never give the same person two shifts in a row.
  3. Otherwise give the shift to whoever has the lowest weighted load so far; break ties by who was on call longest ago.

4. Publish it where people look

Export the rota as a calendar file (.ics) with one event per shift and the handover time, and share it as a team calendar. Swaps happen in the plan, then re-export. Your paging tool can keep doing the paging.

5. Review the tally each cycle

After each cycle, look at weekend and holiday counts per person, not just totals. Carry imbalances into the next plan rather than resetting to zero.

Free tool: Plan a fair rota: leave, public holidays, weighted fairness and an .ics calendar

Runs in your browser. Public holidays come from Nager.Date; change any shift and the fairness tally updates.