It's a Tuesday afternoon in May. A newly-named chief opens last year's residency block schedule for the first time. She scrolls. Color-coded blocks. Names that don't match the current roster. Many random notes on vacations, electives etc. The previous chief is graduating in three weeks. The new academic year starts in seven.
If you've ever been that chief, this guide is for you.
A residency block schedule is the year-long plan that assigns every resident in a program to a clinical rotation for every week of the academic year, more importantly — it also grants everyone's vacations (lol so precious in medicine). Build it well, and the next twelve months mostly take care of themselves. Build it poorly, and you'll spend the rest of the year patching it.
This is the complete guide to how to build a residency block schedule — the rules, the inputs, the order of operations, and some tips on how to manage it. It's written for the chiefs taking over right now, in May, with a July 1 go-live and not nearly enough time.
What a residency block schedule actually is
If you're reading this, you probably know what a residency block schedule is, so I'll dive straight in. Most programs divide the year into 13 month blocks, some use 4+1 patterns, 6+2 patterns, or custom structures based on specialty needs.
In other words: every resident, every week, on a service, in a way that simultaneously satisfies ACGME rules, program-specific requirements, fairness across the cohort, and a long list of unwritten institutional habits.
It is not a shift schedule. Shift scheduling is what happens inside a block — who is on Monday night call during the MICU rotation, for example. Block scheduling is the layer above, and it looks deceivingly simple.
The "rules" that govern every block schedule
When chiefs talk about "the rules," they almost mean many different things at once.
To think of it simply: there are some rules that are non-negotiable like ACGME duty-hour limits, program-required rotations to graduate, coverage minimums, approved vacations and leave, continuity clinics. These are the foundations that rule a schedule.
Then we layer on some negotiable rules like night-float distributions, weekend call distributions, lighter rotations that follow call rotations, granting electives etc. And before you and I know it, we're talking about a couple dozens of rules and the art of building a block schedule is mostly an art of knowing what can break and what can't.
How long does it take to build a residency block schedule?
Building a residency block schedule typically takes a chief resident between 4 and 12 weeks of part-time work, depending on program size and the tools used. In the dozens of chiefs I've spoken to, the hours really vary. For smaller sized programs under 30 residents, the average is 4–6 weeks. For programs over 50 residents, this can take anywhere between 1–2 months. This is on Excel before there are any revisions from your PD.
The thing nobody warns chiefs about is the shape of those weeks. The first week is fast. The second week feels productive as slots are being filled. Then everything slows down, because by week three the chief is no longer building a schedule. She's debugging a schedule — checking whether one small change broke three other parts of it.
One chief resident I spoke to last year started her schedule in February, during her ICU block. She told me she didn't finish until the week before residents were supposed to receive it. "I built the first draft fast. The last six weeks were just finding the errors," she said. That's the part of block scheduling that surprises new chiefs the most: drafting is the easy half.
What you need before you write a single block
Before opening any tool — Excel, MedRez, Amion, Standard Form, Google Sheets — get these five inputs in writing. A chief who starts building without these is going to throw away a lot of work:
- The resident roster, by PGY level. Names, PGY level on July 1, expected end date, board exam dates, planned away rotations, maternity leave etc.
- The rotation list and required weeks per PGY level. What rotations exist, which are required, and how many weeks each resident must complete by the end of the year.
- The minimum staffing requirements per rotation per week. This is what creates the constraint that makes block scheduling hard. The MICU needs 4 residents this week and 4 next week, these are the foundations.
- The vacation and away rotation requests, with priority order. Most programs collect these via a request window in March or April. If the previous chief left a list, treat it as gospel until proven otherwise.
- The previous year's schedule and the list of known problems. What broke last year, who got stuck with two ICUs back to back, what the program director flagged in feedback.
If any of these are missing, find them before you start. Building without them is the single most expensive mistake new chiefs make.
The order of operations: how to actually build it
Most chiefs build a residency block schedule in roughly this order. After building various different block schedules, this is what we've arrived at — as each step constrains the next:
Step 1 — Place the immovable. Vacations, board exam blocks, parental leave, away rotations, fellowship interview weeks. Top tip: if you know your minimum coverage numbers — you will instantly be able to see which weeks you lack residents due to vacations etc.
Step 2 — Fill the required heavy rotations or the rotations with cadence. ICU, night float, and other "must-have-coverage" services like continuity clinics. These have the strictest minimum staffing and tend to be the hardest to swap.
Step 3 — Fill the educational/graduation requirements. Required rotations like specialty blocks each resident needs to graduate. These have flexibility in week placement but not in total count.
Step 4 — Distribute the flexible rotations. Electives, research blocks, selectives. Most programs treat these as the relief valve so you can distribute them.
Step 5 — Run the fairness check. Count night float weeks, weekend calls, and holiday rotations per resident per PGY class. The gap within a class should not exceed 1–2.
Step 6 — Run the compliance check. Walk every resident's full year against ACGME's 80-hour rule, 24+4 limit, and minimum days off. Most chiefs find at least one violation on the first pass.
Step 7 — Sleep on it. Then audit again. Schedules read differently after 24 hours. So do the people on them.
This is the order of operations. It's not the timeline: most chiefs cycle through these steps two or three times before sending the schedule to the PD — so would recommend communicating with your PD early.
Can I use AI?
Lots of chiefs I've spoken to have used AI in one way or another to attempt building a block schedule — and to answer this question, I think it depends. If your program is relatively straight-forward and doesn't really have flexible vacations, it might be possible to get an AI to generate a schedule.
That said, AI is very good at checking a schedule by writing a bunch of formulas, and we've written more about that in a separate post.
Excel vs. block schedule software for residency: when to switch
Most programs still build their residency block schedule in Excel. This works — until it doesn't. The math underneath block scheduling is closer to airline crew scheduling than to a Google Calendar invite: we've written about why ChatGPT and general-purpose tools can't reliably solve it in a separate post. The practical takeaway here is this: as a program grows, the gap between the schedule I came up with and the best schedule that exists gets very large, and Excel gives you no way to tell the difference.
Here's what else changes as programs grow, alongside how dedicated block schedule software for residency handles it:
| What you're trying to do | Excel | Amion / legacy tools | Modern residency scheduling software |
|---|---|---|---|
| Encode non-negotiable rules | Manual checks | Some rules built in | All rules built in, auto-validated |
| Track fairness per PGY class | Build formulas | Limited reports | Live dashboard |
| Swap one resident's rotation | Cascading manual fixes | Manual fixes | Auto-recompute everything downstream |
| Capture requests in one place | Email + tabs | Limited | Built-in request portal |
| Know if a schedule is even possible | Find out by failing | Find out by failing | Solver tells you upfront |
| Hand off to next year's chief | Hope they read the file | Some documentation | All rules + history exportable |
Unlike Amion-style call tools, which were built for fellow/attending shift scheduling, modern block schedule software for residency is designed specifically around the 52-week, multi-rotation, ACGME-compliant pattern that residency requires. It's a different shape of problem.
A small plug, at the end
This is exactly the problem we set out to solve at Standard Form. As a physician, I've seen firsthand how much invisible work goes into building a residency block schedule: the chief in the ICU rounding at 6 a.m. who's also been tracking everyone's weekends in a side spreadsheet for six months. The goal isn't to replace the chief or to automate away the judgment that makes a schedule humane. It's to give chiefs a tool that does the math at the speed of removing a cannula, so they can focus on the calls that actually need a human.
Standard Form is a residency scheduling platform that lets chiefs type their rules in plain English — "every PGY-2 needs 4 weeks of MICU", "no more than 2 weekend calls in any 4-week block", "honor every approved vacation request" — and generates ACGME-compliant block schedules in minutes. It's also the tool that will tell you, before you spend a weekend on a bad draft, that two of your soft rules are mathematically impossible to satisfy together.
We're currently working with a handful of IM programs on their first AI-built schedules. If you're running into any problems building a schedule — please reach out. I would love to help.
Thanks to Owen Kosman and the many conversations I've had with chiefs that shaped this guide.

