Free tool
Add your team, pick a rotation length, drop in PTO blocks. Get a fair schedule, per-person ICS feeds, and a share link your teammates can open without a login.
No PTO scheduled.
No PTO scheduled.
No PTO scheduled.
8 shifts · handoff at 09:00 Europe/London
Hatched bars = covering for a teammate on PTO.
Fair means two things. First, every member takes roughly the same number of shifts across a quarter, and second, the load doesn't silently fall on one person because the others are away. Most rota spreadsheets fail the second test: a teammate goes on PTO, someone else picks up the shift, and the cover never gets that slot back. Zeitful pushes the skipped member to the back of the queue so the cycle re-balances on its own.
"Monday morning" means three different things to a team in San Francisco, London, and Singapore. If the handoff is anchored to one person's local time, the others quietly inherit a worse shift every cycle. Pick a single handoff TZ up front, write it on the runbook, and stick to it. The generator anchors every shift to your chosen zone so the boundary is unambiguous even across DST switches.
Add a date range to anyone's PTO blocks and the generator skips them automatically. The teammate who covers is flagged with a hatched bar in the timeline, and a "covering" tag in the calendar description, so it's obvious at a glance who took the extra load. When you download the ICS feed, the same flag appears in the description field, so anyone glancing at the calendar knows it's a swap, not a regular shift.