👷Shift Schedule Maker - Auto Roster & Rotation Generator
Scheduling a store, a factory line, a ward or a support team means juggling many rules at once: how many people each shift needs, how many days in a row someone may work, rest after night shifts, a minimum number of days off per week, leave requests, people who can’t do nights — and keeping shift counts, nights and weekends fair. This tool hands those rules to a solver. It first fills each day greedily with whoever should work next, then runs a seeded simulated-annealing search that swaps and adjusts assignments, putting hard rules first and fairness second; a month for a few dozen people usually takes a blink. If your settings simply can’t be staffed — a day with fewer available people than required, or not enough capacity once weekly days off or the consecutive-day limit are taken into account — it tells you exactly which days fall short instead of producing a roster that quietly breaks the rules. You can also switch to a fixed rotation with presets such as a four-crew three-shift cycle (D D S S N N off off), 2-on-1-off, 1-on-1-off or alternating 6- and 5-day weeks, with each person’s starting point staggered automatically. Click any cell to pin a shift, a day off or leave; pinned cells survive regeneration. Chinese public holidays and make-up workdays are marked in the header. Per-person stats show shifts, hours, each shift type, weekend and holiday work, plus a rule-check list. Print an A4 landscape roster or save it as PDF, export PNG and CSV, and everything autosaves in your browser.
Free · No sign-up · Runs in your browserLast updated:
How to use Shift Schedule Maker
- 1Pick a preset (store early/mid/late, 3-shift rotation, duty roster…) and set the start date and number of days
- 2Edit shift times and headcounts, add people and shifts they never work, and set consecutive-day and rest rules
- 3Click cells to mark leave or pin shifts, press Generate roster, check the rule list and stats, then print or export
FAQ
- How does the auto scheduler work?
- It first fills each day shift by shift, preferring people with fewer total shifts, fewer of that shift type and fewer weekend shifts who won’t break the consecutive-day or rest rules. Then a simulated-annealing search makes tens of thousands of small changes — swapping two people on the same day or changing one person’s shift — with hard rules weighted far above fairness, and keeps the best roster found. The random generator is seeded, so the same settings always give the same roster; Try another changes the seed.
- Why does it say the roster can’t be fully staffed?
- Before solving it checks capacity: whether a day needs more people than are available, whether enough people can work a particular shift (for example nights), whether a week has enough capacity after everyone’s required days off, and whether any window of N+1 days can be covered under a limit of N consecutive days. If any check fails, no valid roster exists, so it lists the days and shortfalls. Add people, lower headcounts or relax a rule.
- How do rotation patterns work?
- Choose a preset and it sets up the shifts, rules and sequence — for example D D S S N N off off, which gives two people on each shift every day with eight staff. The sequence starts on the Monday of the first week, and with staggering on, each person begins at a different point so coverage is even. You can type your own sequence using shift codes separated by spaces.
- Is my data uploaded?
- No. All scheduling runs in your browser, and staff names and rosters are stored only in this browser’s localStorage; you can export a JSON backup. Holiday marks follow China’s official public-holiday arrangements, currently for 2025 and 2026.