Health & Life Runs locally Ready to use Built-in examples No tracking

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.

How to use

  1. Pick a day whose shift you already know.
  2. Choose a preset cycle or define a custom sequence.
  3. Read the coming 30 days shift by shift.
  4. 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.