Free tool

On-call schedule generator

Add your team, pick a pattern, set your rules - get a fair, rule-checked schedule for next month. Runs entirely in your browser.

One name per line — up to 24.

Separate 12-hour day and night shifts, seven days a week — hospitalist and ICU style.

Sep 2026

Sun
Mon
Tue
Wed
Thu
Fri
Sat
1
PAAL
2
REOK
3
PACH
4
PARE
5
ALOK
6
PACH
7
REAL
8
PAOK
9
PARE
10
CHOK
11
PACH
12
REAL
13
PAOK
14
CHRE
15
PAAL
16
CHPA
17
REOK
18
CHAL
19
RECH
20
PAOK
21
ALRE
22
PAAL
23
CHOK
24
PARE
25
CHAL
26
PAOK
27
RECH
28
ALPA
29
REAL
30
OKCH

Fairness — weighted load per provider

Score 98/100

Spread between highest and lowest weighted load: 1. Lower is fairer.

Dr. Alvarez17.75 pts · 11 shifts
Dr. Chen17.25 pts · 12 shifts
Dr. Okafor17.5 pts · 10 shifts
Dr. Patel18 pts · 15 shifts
Dr. Reyes17 pts · 12 shifts

Violations

Every shift was filled without breaking a rule.

Could not fill a shift instead of quietly breaking a rule (a max-consecutive-days or max-consecutive-nights cap, most often) means the roster is too thin for the pattern you picked — add a provider, relax a rule, or try a lighter pattern.

How it works

The generator places shifts chronologically, always choosing the provider whose placement keeps everyone's weighted load closest together without breaking a hard rule (max consecutive days, max consecutive nights, or no double-booking). Once every shift has an initial placement, it runs a local-search pass - thousands of small swaps - that only keeps a swap if it lowers the overall unfairness. Same inputs and same seed always produce the same schedule, so you can trust it's not just noise.

What "fair" means here

Not every shift costs the same. A weekday day shift has a base weight of 1; a night or 24-hour call shift usually weighs more, and weekend or holiday weights multiply further (both are adjustable in the rules panel). The tool tracks each provider's weighted load, divided by their FTE, and the fairness score (0–100) reflects how close those weighted loads are across the group. A 100 means every provider carries an identical load; a lower score means someone is carrying meaningfully more.

The limits of a free, in-browser tool

This tool has no memory. Close the tab and the schedule is gone unless you downloaded it first. It also can't track approved time off across future months, publish a page your team can bookmark, or handle swap requests after the fact - those need a database, which is what the full product adds on top of the same engine.

Common questions

Yes. This page calls the exact same scheduling engine that powers RotaBay accounts - the same fairness math, the same rule checks. Nothing here is a stripped-down demo.

Save this schedule and publish it to your team

Sign up free to keep your roster, publish a live who's-on page, and let providers subscribe to their own calendar feed.