Shift Work Calendar
Pick a day whose shift you know, define the cycle as N-on-M-off or a custom sequence of day/evening/night/rest labels, and see the coming days mapped shift by shift with rest days highlighted.
People working shifts count days differently from office workers: a friend suggests the weekend, and the first thing needed is whether that day is a day shift or a night shift, while planning a long break means counting which stretch of the cycle has consecutive rest days. Any rota reduces to a cycle — four on and two off is a six-day round, a four-crew three-shift system is a four-day round of day, evening, night and rest, and a two-shift pattern rotates over twelve days on and twenty-four off.
Give the tool the anchor — which shift today is — and the next 30 days are laid out day by day, with the weekday and the position within the cycle visible at a glance. A custom sequence accepts any combination of day, evening, night and rest, shifts containing a rest entry count automatically as rest, and a summary card gives how many rest days fall in the 30 and how long the cycle runs.
Did this tool solve your problem?
Submitting sends the tool name, your input and the current result to the server. Please do not include ID numbers, phone numbers or other private data.
AI assistant It answers using your current input and result
Asking again sends your current input and result to the server once more. Please do not include private data.
How to use
- Pick a day whose shift you already know.
- Choose a preset cycle or define a custom sequence.
- Read the coming 30 days shift by shift.
- Check the rest-day count and cycle length in the summary.
How it works
How to choose the anchor date
The anchor date is the whole projection's zero point: the cycle counts from that day, and the anchor day maps to the sequence's first item. If you're on a day shift today, choose today and set the first item to day shift; for a pattern of resting today and working tomorrow, the anchor should be tomorrow. A wrong anchor shifts the whole table — just recompute with another day, no need to change the sequence.
How to fill a custom sequence
The custom sequence rotates daily in the order you enter, separated by commas, enumeration marks or slashes — e.g. "day,day,mid,mid,night,night,rest,rest" is a common two-shift-two-night pattern. Shift names are arbitrary (team A/B both work); only shifts containing "rest" count as rest days, and all others count as working.
Cross-month and shift swaps
The projection is the ideal-cycle convention: no shift swaps, overtime, rescheduling or statutory holiday adjustments. When a shift is swapped, set the post-swap day as the anchor and recompute to restore accuracy; whether a holiday shift is triple-pay or rescheduled is a pay matter this tool doesn't handle.
Why only 92 days
The 92-day (about a quarter) preview cap is deliberate: shift rules are often adjusted quarterly with production plans, so projections beyond a quarter have limited value. For further dates, project by the current rule and recalibrate the anchor with the new schedule when the month arrives.
Code example
JavaScript N on / M off: locate each day with a modulo
function shiftOf(i, onDays, offDays) {
const cycle = onDays + offDays;
return i % cycle < onDays ? "on" : "off";
}
// 2 on / 2 off: the anchor day is day 0 → 0, 1 on; 2, 3 off; 4, 5 on...
// Whether any date is on or off: count the days from the anchor, then take the modulo
JavaScript A custom pattern: the sequence is the cycle
const pattern = ["day", "day", "mid", "mid", "night", "night", "off", "off"];
const label = pattern[i % pattern.length];
const rest = label.indexOf("off") >= 0; // any label containing "off" counts as rest
// The anchor day maps to the first item of the sequence (not the first "on" day)
// day day mid mid night night off off = an 8-day cycle, roughly 8 rest days a month
FAQ
How do I enter a "work 4 rest 2" pattern?
Choose "work N rest M," N = 4, M = 2, and an anchor day on a day shift. The cycle is 6 days, about 20 work and 10 rest days a month; if your 4-2 rotates day/night, the custom sequence "day,day,night,night,rest,rest" is more accurate.
What cycle is four-team three-shift?
The standard four-team three-shift is day, mid, night, rest, one day each, a 4-day cycle, entered as "day,mid,night,rest." Some units use variants like "work 6 rest 2" or "day,day,mid,mid,night,night,rest,rest" — enter your unit's actual sequence and the tool projects by your order.
Is a long cycle like work 12 rest 24 supported?
Yes. The work-N-rest-M mode has a 60-day cycle cap (12+24=36 is within range); set the preview to at least two cycles (72+ days), or the table won't show a complete rest segment. The custom-sequence mode caps at 30 items.
Why doesn't my shift table match the workshop schedule?
Check the anchor first: is the workshop table's day 1 the same shift as your anchor? Then check the sequence direction: some units use "rest,mid,night,day" not "day,mid,night,rest," and a reversed direction shifts the whole table. Verify the first 4 days and the rest follows.
Does it handle holidays? How are make-up days treated?
This tool projects only fixed cycles and doesn't overlay statutory holidays or make-up days — shift units' holiday arrangements (triple pay, duty, rescheduling) are usually announced separately. To see holidays, compare the projection with the site's holiday calendar.
If I forget today's shift, how do I set the anchor?
Find the most recent day with a "certain shift" — not necessarily today: if you worked night last weekend, use that day as the anchor with the first item as night shift. The anchor just needs a clear shift that day, closer being better; a misplacement shifts the whole table, so pick another day and recompute.
Can I save or share the schedule result?
This page generates no share link or file; the daily shift/rest table can be selected and copied to notes or a family chat. Parameters stay in browser local storage (recent record), and the last cycle setting restores on next open; re-enter after a device change or browser-data clear.