Scheduling

How to Handle Holiday Call Fairly

Rotation alone isn't enough. How to weight holidays properly and solve the two-year memory problem that lets small holiday-call inequities compound unnoticed.

June 16, 2026 · 7 min read

Holiday call is where scheduling fairness gets tested hardest. Everyone can live with an uneven month here or there, but working Christmas two years running while a colleague never has is the kind of thing people remember for a decade. The fix is two separate mechanisms working together: rotation, and memory.

Rotation: no one works the same holiday twice in a row

The baseline fix is straightforward - build an explicit rotation order for major holidays (however your group defines "major": Thanksgiving, Christmas, New Year's, and a handful of others is typical) so the same person doesn't draw the same holiday two years running. This alone solves the most obvious complaint, but it isn't sufficient on its own, because a rotation only prevents repeats within itself - it doesn't account for how heavy each holiday actually is.

Weighting: not all holidays cost the same

Working July 4th is a very different experience from working December 25th for most people, even though both are federal holidays. A fair system assigns each holiday a weight reflecting how disruptive it typically is to a provider's personal life, and folds that weight into the same fairness math used for the rest of the schedule (see our guide to the weighted-tally method). A simple, defensible starting point: weight Thanksgiving, Christmas, and New Year's Eve/Day at 2× a normal shift, and other federal holidays at 1.5×. Track weighted holiday load per provider over a rolling period, not just this year's schedule in isolation.

The two-year memory problem

Here's where most manual holiday scheduling quietly fails: the person building each year's schedule remembers last year's assignments (maybe), but rarely tracks two or three years back with any precision. Over time, small inequities compound invisibly - someone drew the short straw in year one and year three, but nobody connects those dots because they're not written down anywhere searchable. The fix isn't more diligence from whoever builds the schedule; it's a durable record. Every holiday assignment, going back as many years as your group has data for, needs to live somewhere queryable, not just in the current spreadsheet tab.

In practice, this means keeping a running log - provider, holiday, year - separate from the working schedule itself, and consulting it explicitly whenever you build the next holiday rotation. A generator that remembers this automatically removes the burden from a single scheduler's memory entirely.

A simple policy template

  • List your group's designated "major" holidays and assign each one a fairness weight.
  • Maintain a running log of who worked which holiday, by year - not just this year's plan.
  • When building next year's holiday assignments, exclude anyone who worked that specific holiday in the prior year (or two, for the heaviest ones).
  • Publish the holiday assignments earlier than the rest of the schedule - people plan around holidays months in advance, and late notice on holiday call is one of the fastest ways to erode trust in the whole system.

Generate a schedule that weights weekends and holidays automatically, and export it as a calendar feed your team can subscribe to.

Try the schedule generator

Common questions

Should holiday call be volunteer-based or assigned?

A hybrid usually works best: open a volunteer window first (some providers genuinely prefer working a specific holiday for personal reasons, and letting them opt in reduces friction for everyone), then assign the remaining holidays by rotation and weighted fairness for whoever's left.

How far in advance should holiday schedules be published?

As early as your group can manage - three to six months ahead is common for major holidays, since travel plans, family commitments, and even flight prices all depend on knowing early.

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.