On-call schedule generator
Paste your team, pick weekly or daily shifts and get a rota where weekends and holidays count as heavier days, nobody works back-to-back unless it is the only fair option, and leave is respected. Download it as a calendar file or CSV. It all runs in your browser and nothing you type is sent anywhere.
How the rota is worked out
- Points, not just turns. Every day on call earns points: a weekday, a weekend day and a listed holiday are worth different amounts (you set them). A weekly shift is the sum of its days.
- Least loaded first. Each shift goes to the available person whose capacity-weighted total would be lowest after taking it. A half-time person ends up with about half the points.
- Rest first. Taking two shifts in a row costs a small penalty, so a person only works back-to-back when the numbers say it is the fair option.
- Leave blocks the whole shift. If someone is away on any day of a weekly shift, they are not given that week. If everyone is away, the gap is listed instead of hidden.
- Same input, same rota. Ties are broken by who rested longest, then list order, so regenerating does not shuffle a rota for no reason.
For the reasoning behind the weighting, swaps and the 25% rule of thumb, read how to make an on-call rota fair. To keep the rota, swap shifts and remember who covered what over months, open Turnkeep. The engine behind this page is open source (MIT).