Skip to content

Field note · Planning

Repeating shift schedules are modular; real calendars are not

Published: September 9, 2026 · Maintained by: Jisung Kim · AI assistance and release-check practices are disclosed in the editorial policy. This note documents WEBBE-B tool behavior, design choices and verification practice.

Overlap Days is useful when schedules repeat: four days on/four off, rotating crews, alternating weekends or another fixed cycle. The model is powerful because a repeating pattern can be projected indefinitely from a known anchor. The same simplicity is also its limit: real calendars contain exceptions.

A repeating schedule needs an anchor

A pattern such as work, work, off, off is ambiguous until one date is assigned to one position in the cycle. Once an anchor is known, every other date can be mapped by the number of days between it and the anchor modulo the cycle length.

Two people can share a longer combined cycle

If one schedule repeats every four days and another every six, the pair returns to the same relative alignment after a common multiple of both cycle lengths. The least common multiple is twelve days in this example. Looking across that combined window reveals every recurring alignment between the two patterns.

“Free” needs a definition

Some workers treat the day after a night shift as unavailable; others count it as free after a recovery period. A browser planner cannot infer those personal rules. The input pattern should reflect the interpretation the group actually uses, or the result can be precise but operationally misleading.

Example: two rotating teams

Person A follows two work days and two off days. Person B follows three work days and three off days. Starting from their anchors, the planner can mark days where both patterns say “off.” Those matches repeat according to the combined cycle. This is much easier than manually comparing several months of calendar squares.

One-off exceptions break the model on purpose

Vacation, overtime, illness, public holidays, shift swaps and training days are not failures of the repeating model. They are data the model does not contain. If a trip depends on a specific weekend, the final step is to check the real calendars after the repeating overlap is found.

Time zones and partial days add another layer

A day-level planner treats a calendar date as one unit. For international teams or overnight work, availability can depend on hours and time zones. A more detailed meeting planner needs timestamps rather than simple on/off day states.

Why a simple model is still useful

Complex calendar software can ingest every event, but that may be unnecessary when the first question is “which weekends are usually good?” A repeating-cycle tool gives a fast baseline and makes the assumptions visible. The user then applies exceptions only where they matter.

A verification rule for real plans

Use the repeating result to identify candidates, not to book non-refundable travel automatically. Confirm the selected dates against current work rosters and personal calendars. If the schedule changed permanently, update the anchor and pattern instead of stacking exceptions on an outdated cycle.

The model works because it is deliberately smaller than a calendar. Its value is revealing recurring structure, while the final event still belongs in a real calendar.

Modulo arithmetic needs a defined anchor

A repeating schedule only becomes computable when one date is tied to one position in the cycle. If a four-day pattern is Work, Work, Off, Off and September 1 is the first Work day, then every other date can be mapped by the number of elapsed days modulo four. Changing the anchor by one day shifts every result. That is why Overlap Days exposes the start reference instead of guessing from a calendar label.

Dates before the anchor are a useful test

Programming languages do not all handle negative remainders the same way. A robust implementation normalizes the remainder so dates before the anchor still map into positions 0 through cycle-length-minus-one. Testing only future dates can hide this bug until a user asks about last month.

More than two schedules

For three people, calculate each person’s state for the same date and keep the date only when all required conditions are true. There is no need to multiply every cycle length into a giant table first. Iterating a bounded date range is easier to explain and allows holidays or manual exceptions to be layered on afterward without changing the base repeating pattern.

← Back to Field Notes · Browse all WEBBE-B tools →