Building & fixing a schedule¶
These actions live on the Schedule screen and are available to editors and admins. (If you don't see the buttons, you're a viewer — see roles.)
Before you build a year, make sure the Roster, Time Off, and Holidays are up to date, because the scheduler reads from all three.
Generate — build a whole year¶
Use Generate to create a brand-new schedule for a year (or completely rebuild one).
- Pick the year.
- Click Generate.
- Confirm. The app fills every week fairly and saves the result.
How it decides:
- Each role (Manager / Voice / Data) is filled from its own pool, always giving the next week to whoever has been on call the fewest times so far, so each pool stays balanced.
- No back-to-back weeks — the same person won't be on call two weeks in a row (managers are checked across all roles).
- People on PTO that week are skipped.
- Holiday weeks are left blank for you to fill (volunteer-first) — use Assign holidays to fill them automatically.
It's fair and repeatable
Generating shuffles the starting point each year so the same people don't always get the same weeks — but generating the same year again produces the same schedule.
Generate replaces the year
Generate rebuilds the whole year from scratch. If you only need to fix part of a year that's already in use, use Regenerate or Rebalance instead (below).
Regenerate — repair from a date forward¶
Use Regenerate after something changed mid-year (someone took new PTO, or left). It repairs rather than rebuilds.
- Click Regenerate.
- Choose an effective date — weeks before this date are left untouched.
- Confirm.
What it does: keeps existing assignments and only reassigns weeks where the assigned person is now on PTO (or no longer active), and fills any empty slots. Holidays are included — a filled holiday whose person is now on PTO gets reassigned, but blank holidays stay blank.
Tip
Reach for Regenerate for small mid-year fixes. Reach for Generate only when you want a completely fresh, fully balanced year.
Rebalance — even things out after a roster change¶
Use Rebalance after you add or remove a person in the roster. It evens out the per-pool load while changing as few future weeks as possible.
- Click Rebalance.
- Choose the effective date (only weeks from that date forward can move).
- Confirm.
People already carrying their fair share keep their weeks; over-loaded weeks shift to under-loaded people (including new hires). Holidays are handled separately by Assign holidays.
Swap weeks — two people trade¶
Use Swap weeks when two people simply want to trade upcoming turns.
- Click Swap weeks.
- Pick person A and one of their weeks.
- Pick person B and one of their weeks.
- Confirm.
The app checks the swap is valid first — it won't land someone on a week they're on PTO, and it won't double-book anyone — then applies it.
Assign holidays — fill the blank holiday weeks¶
Holiday weeks start blank and marked "(fill manually)" so you can ask for volunteers. When you're ready to fill the rest automatically:
- Click Assign holidays.
- Confirm.
It fills the blanks balanced by holiday count, so everyone gets one holiday before anyone gets a second (as far as the roster allows). Filled holiday weeks then show the assigned person.
If a week can't be filled normally¶
If literally no one is eligible for a slot (everyone either worked the week before or is on PTO), the app won't leave it blank — it assigns the most-rested person instead, relaxing the back-to-back rule first and overriding PTO only as a last resort. These weeks are flagged so you can still find a volunteer and fix them by hand or with a swap.
Undo a change¶
Every one of these actions saves a snapshot first. If you don't like the result, open History and Restore the previous version. See The Schedule screen → Schedule History.