GlobeTime

GlobeTime / Meetings & events

Rotating shift calendar

Build a rotating shift calendar, compare two cycles and find matching rest dates. Adjust exceptions, resolve clock changes and export ICS files.

Calendar controls become available after loading. No personal schedule is calculated in this preview.

1. Define your cycle

Each letter is one civil date. Spaces and commas are optional. The sequence repeats; maximum 366 positions. These examples are editable, not employment rules.

Choose a date whose position you know. If it is the third day of DDDDOOOO, enter 3. Check your first cycle against your actual roster.

2. Set local working hours

D · Day shift
N · Night shift

Type and choose a match. Searching does not change the zone or results. The full list remains available below.

3. Choose the period

Your schedule stays in this tab. No account, automatic saving or public link. Download a configuration file to reopen it later; reloading or changing language clears unsaved edits.

How the rotating calendar works

The cycle advances by civil dates, not by 24-hour timers. An exception replaces one date without moving later positions. Each working endpoint is then resolved in your chosen IANA zone. A night shift belongs to its start date; actual duration can differ during clock changes. This personal planner does not validate pay, legal rest, staffing or public holidays.

Example: DDDDOOOO, anchored at position 1 on 1 January 2026, gives work on 1–4 January, rest on 5–8 January, then work again on 9 January. Starting the preview later does not restart the cycle.

Compare rotating shifts and rest dates

The comparison uses the date range of A and the repeating rules of each cycle, including B outside its export period. Each date is read in that cycle’s own zone. Matching O labels do not guarantee common hours, sleep or personal availability; in different zones the same date can begin at different instants.

Time-zone rules: IANA via Noda Time. Calendar files: RFC 5545. IANA · RFC 5545

An unhandled error has occurred. Reload