Personal shift tool

Rotating shift calendar generator

Choose the first day of your known cycle. The generator repeats the pattern forward and shows the actual dates you work.

Your rotation

Start with one date you know.

The anchor date is Day 1 of the selected cycle—not necessarily your next shift.

This tool repeats the exact cycle you choose. It does not know about swaps, overtime, leave, or changes made by your employer. Nothing you enter is stored or sent anywhere.

Worked example

2-2-3 example: Day 1 is 7 September 2026

With Monday, 7 September 2026 as Day 1, Monday and Tuesday are work days, followed by two days off, three work days, two days off, two work days, and three days off. Day 15, 21 September, returns to Day 1. W means work and O means off.

WWOO WWWOO WWOOO → repeat

First seven dates of the example 14-day work/off cycle
Date (YYYY-MM-DD)Cycle dayAssignment
2026-09-071Work
2026-09-082Work
2026-09-093Off
2026-09-104Off
2026-09-115Work
2026-09-126Work
2026-09-137Work

How the generator assigns a date to a cycle day

Count calendar days from the anchor, then wrap that count through the selected cycle. For a 14-day cycle, an offset of 14 returns to the first symbol. Dates before the anchor wrap backwards.

Zero-based cycle index = ((elapsed days % cycle length) + cycle length) % cycle length. Here % means remainder, and index 0 is Day 1. Date-only arithmetic uses UTC internally to avoid daylight-saving shifts; it does not calculate elapsed working hours or overnight end times.

The numbers describe work and off blocks. They do not determine whether you work days or nights. If your roster assigns both, use a custom cycle with D, N, and O.

Read the complete 2-2-3 shift schedule explanation, compare a 4-on-4-off schedule or four-day 2-on-2-off cycle, or learn how rotating shifts fit into an iPhone calendar.