Emergency Medicine residency scheduling

Emergency Medicine Residency Scheduling, Solved in 60 Seconds.

Automated shift optimization, multi-party trade routing, and instant onboarding from your existing departmental schedule docs.

Output your first schedule in minutes.

Block 5 145 slots
35-Day Schedule View
2026-10-19 to 2026-11-15 Draft
‹ › Oct 18 to Oct 31
Custom range Print Export Import
Two weeks · 3 shifts per day · 1–2 residents 80h 10h rest 1 day off

Block 5, weeks 1–2 Every slot staffed. No conflicts.

Onboarding

Your residency, imported.

Feed your existing EM Residency Tome of Knowledge.doc to ChatGPT or another AI, and let it implement your roster, shift structure, and rotation rules in seconds.

Turn one file into a complete block schedule, roster, and schedule template

No more

  • Block Schedule.xls
  • Frantic midnight swap request chats
  1. 01 Point the AI at the document

    Roster, policy, shift definitions, block templates.

  2. 02 Paste back the output

    One schema, every field mapped.

  3. 03 Admire your work

    Ready to schedule

Daily operation

View, fill, swap.

Daily operation revolves around three modes. View the schedule and make minor tweaks. Fill hands out shifts to residents who need more, and fills empty shifts. Swap optimizes the schedule with immediate direct and 3-way trades.

View

Read the block and make a single change without leaving the schedule.

Schedule editor

Fill

Hand out shifts to residents who need more hours, and close empty slots in one pass.

Coverage and quotas

Swap

Route direct and 3-way trades with ACGME checks before anyone agrees.

Direct, 3-way, checked

Fill

Close the gaps.

Open a block, pick a resident, and every eligible slot lights up.

  • Shows unassigned slots instantly, with rest and coverage validation.
  • Maps PGY-1, PGY-2, and PGY-3 tiers to the shift ratios your department uses.
  • Works around off-site rotations, ICU blocks, and main-ED staffing.

PGY-1 to PGY-3 · ACGME Compliant · rest-aware

Fill panel

Optimize

Solve the block.

Set the rules once, then let CP-SAT find the highest-scoring schedule.

  • Evaluates thousands of schedule permutations in about 60 seconds.
  • Every generated schedule, fill, and swap is checked against the full ACGME rule set.
  • Balances coverage, rest, and shift distribution without manual rebuilding.

Full ACGME compliance across generation, fills, and swaps

Constraint solver

Swap

Route the trade.

Two residents cannot trade directly? The router finds a third and checks every leg.

  • Direct swaps: 1-to-1 trades with ACGME checks before they reach the chief.
  • 3-way swaps: automatic multi-party chains when a direct trade will not clear.
  • Every leg is checked for rest, same-day overlap, and consecutive shifts.

Direct · 3-way · ACGME-checked

Swap router

Weekly surface

The rest of the block.

Requests, fairness, calendars, and access. The parts chiefs and residents touch every week.

Off requests

Residents submit their own requests. Block and annual quotas keep coverage holes from reaching the solver.

Fairness

Weekend, night, and holiday distribution by class year. Everyone can check the math.

Calendar sync

Publish once. Residents subscribe in iCal, Google Calendar, or Apple Calendar.

Access

Residents, chiefs, and coordinators sign in with the email they already use. Roles decide what they can edit.

Try it now

Open the demo. Generate a schedule. Make some swaps.

You’ll know you need it when you see it.

Demo