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.

Aug 2026

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

Fairness — weighted load per provider

Score 98/100

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

Dr. Alvarez18.25 pts · 12 shifts
Dr. Chen17.75 pts · 13 shifts
Dr. Okafor17.5 pts · 12 shifts
Dr. Patel18.5 pts · 13 shifts
Dr. Reyes18 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.