Shift calendar
Define your cycle (e.g. M,M,A,A,N,N,R,R), set which shift you had on a given day and generate the calendar: you'll know your shift for any date, even six months out.
Use any labels you like: M = morning, P/A = afternoon, N = night, R = rest (auto-colored). The cycle repeats forever.
How it works
Rotating shifts repeat identically: all you need is the cycle (e.g. two mornings, two afternoons, two nights, two rest days) and which shift you had on any one day. From there the tool computes your shift for every other date, past or future.
Your data stays yours
The cycle is saved only in your browser (localStorage): next visit it's already set, and nothing is sent to a server.
Tip
You can use any label (e.g. OFF): M, P, N and R get dedicated colors, others stay neutral.
Why a cycle repeats and a calendar does not
Cyclic shifts have a convenient property: once the cycle and one reference day are known, every other day follows by counting. No company calendar or noticeboard sheet is needed: the sequence and the starting date are enough.
The calculation works on the remainder of a division: if the cycle is six days long, the shift on any date depends only on how many days have passed since the reference, modulo six. It is why you can look a year ahead without building anything.
A night shift is not a day
The night between Monday and Tuesday is one shift spread over two dates, and it causes almost every misunderstanding: someone working Monday night is off on Tuesday, but on the calendar Tuesday shows as occupied until the morning.
That is why real rosters also have the «post-night» day, which is not a rest day but the day after a night, and in many contracts it counts differently. If the cycle includes it, it must be written as a shift of its own: lumping it in with rest days throws the hours count out.
Swaps, holidays and time off
The cycle calculation knows nothing about swaps: trading a shift with a colleague, taking leave or falling ill does not move the sequence, it moves only that day. That is as it should be, otherwise a single swap would rewrite the whole year.
Public holidays almost never stop a continuous cycle: hospitals, factories and security services work at Christmas too, and the contract compensates with premiums and time off. The shift calendar and the holiday calendar are two separate things, to be read together only to work out how that day is paid.
Nearby tools
To count the days between two dates there is Difference between dates and for working days only Working days between dates. If you need the week number to report at work, look at Week number.