Features
Everything between the shifts and the published schedule
Set your team up once: the shifts you run and the rules that matter. Everything downstream, generating, editing, publishing, swapping, follows from that.
The generator
Set your rules, generate a fair schedule in seconds
Max consecutive nights, no day shift after a night, a preferred gap between call, weekend and holiday weighting. Set them once per team and every generate respects them, or reports honestly when a slot cannot be filled.
- Deterministic: the same inputs and seed always give the same schedule
- Hard rules are never silently broken to fill a gap
- Runs entirely on your dates, your providers and your shift types
- Max consecutive nights
- 4
- No day shift after a night
- On
- Preferred gap between call
- 2 days
- Weekend weight
- 1.5×
- Holiday weight
- 2×
The grid editor
Drag an assignment, pin what must not move
A generated schedule is a starting point, not a final answer. Move any assignment to a different provider, clear a slot, or pin it so a later regenerate leaves it exactly where it is.
- Pinned assignments are respected even if they break a soft preference
- Every manual change is written to the schedule's audit trail
- Rule warnings show inline as you edit, not after the fact
Publishing
A no-login page for every published schedule
Publish a schedule and it gets a link: who's on now, who's up next, and a calendar feed. Share it once and it stays current as you make changes, no re-sending a file.
- Per-provider and whole-team ICS feeds, refreshed automatically
- The on-now indicator updates the moment a shift starts or ends
- No account needed to view; you control who gets the link
On now
Amara Reyes, MD
Night · until 7:00 AM
Up next
SwapsPractice plan
Swap requests without a text-message trail
A provider requests a swap from the published page or the app; you or a designated approver applies it with one click. Every swap is recorded against the schedule's audit trail.
- Open swaps or direct-to-provider requests
- Applying a swap re-checks hard rules before it takes effect
- Swap history stays on the schedule for as long as you keep it
AR wants to swap Night, Aug 14
PendingCO wants to swap Weekend call, Aug 17
ApprovedTaken by DS · applied with audit trail
Time off
Approved time off becomes hard unavailability
Providers request time off; once you approve it, the generator treats those dates as unavailable, the same as a hard rule. No double-booking someone who is already off.
- Time off feeds straight into the next generate, no manual blocking
- Pending, approved and denied statuses, visible to the whole team
- Deleting a request restores those dates for the next generate
Ben Chen, MD
Aug 20–24
Dana Singh, MD
Sep 1–3
Fairness dashboard
See the fairness score before you publish
Every generated schedule reports a 0 to 100 fairness score and a weighted load bar per provider, so you can check the math before anyone else sees the schedule.
- Weighted load accounts for shift weight, weekend and holiday multipliers
- Load is compared per FTE, so part-time providers are judged fairly
- Hard rule violations are listed by date and shift, never hidden
FTE-aware fairness
A 0.5 FTE provider owes half the load, not the same load
Fairness compares weighted load per FTE, not raw shift counts. A part-time provider is never expected to carry the same weighted total as a full-time one, and the generator accounts for that on every run.
- Provider A, 1.0 FTE
- 42.0 weighted
- Provider B, 0.5 FTE
- 21.0 weighted
- Per-FTE result
- 42.0 vs 42.0 (even)
Calendar feeds
Every provider gets their own feed, the team gets one too
Subscribe once in Google Calendar, Outlook or Apple Calendar and it stays current automatically as the schedule changes. No re-downloading a file every time someone swaps a shift.
- Provider feed
- rotabay.com/api/ics/provider/[token]
- Team feed
- rotabay.com/api/ics/schedule/[token]
- Refresh
- Automatic, on your calendar app's own schedule
Build this month's schedule in RotaBay
Free for one team, no card to start. Set your shifts and rules and generate a fair schedule in minutes.