Dutyroll

Weekly rotation schedule template for a team

A weekly rotation hands one duty to the next person every week: on call, support desk, code review, the kitchen. The pattern is the same for all of them. Below are ready tables for teams of 4, 5 and 6 (copy them into a sheet), the rules that keep a rotation fair, and a free generator that fills the whole year with your names.

Make yours with the free generator Table, Slack text, Excel CSV and calendar (.ics). No sign-up.

Team of 4: each person is on duty every 4th week

WeekOn dutyNext
Week 1DanaLee
Week 2LeeNoa
Week 3NoaBen
Week 4BenDana
Week 5DanaLee
Week 6LeeNoa
Week 7NoaBen
Week 8BenDana

Team of 5: every 5th week

WeekOn dutyNext
Week 1DanaLee
Week 2LeeNoa
Week 3NoaBen
Week 4BenKim
Week 5KimDana
Week 6DanaLee
Week 7LeeNoa
Week 8NoaBen
Week 9BenKim
Week 10KimDana

Team of 6: every 6th week

WeekOn dutyNext
Week 1DanaLee
Week 2LeeNoa
Week 3NoaBen
Week 4BenKim
Week 5KimAri
Week 6AriDana
Week 7DanaLee
Week 8LeeNoa
Week 9NoaBen
Week 10BenKim
Week 11KimAri
Week 12AriDana

Placeholder names. The rule is one line: week N goes to person ((N - 1) mod team size) + 1, then it wraps around.

Five rules that keep a weekly rotation fair

  1. Fix the hand-over day and hour. Monday 09:00 in one named time zone avoids the "does my week end today or tomorrow" argument.
  2. Keep the order stable. People plan around the week they know is theirs. Reorder only when someone joins or leaves.
  3. Say who is next in the same message. The next person gets a week of notice at no cost.
  4. Plan for absences before they happen. Either skip the absent person and let the order continue, or swap two named people. Write down which one your team uses.
  5. Do not make the schedule a one-off sheet. A downloaded schedule is a snapshot; after the first swap it is wrong. Keep a single place that changes.

From the table to Slack

Teams that live in Slack usually end up with a pinned message nobody updates. Dutyroll keeps the order, moves the duty on at the time you pick, and posts it in the channel with Skip and Swap with next buttons:

Support desk this week: @dana. Next: @lee.
[Skip] [Swap with next]

Add to Slack Free for one rotation. Pro is $9/month per workspace.

Next, Slack asks you to sign in to your workspace, then shows Dutyroll's 4 permissions before you press Allow: add the /dutyroll command, post messages, post in public channels without an invite, and see the member list (names, time zones). Dutyroll never reads messages. Not in the Slack Marketplace yet: Slack lists apps only after 10 workspaces use them. Free plan: 1 rotation, no card.

Set it up in two minutes

  1. Add Dutyroll to Slack (the workspace admin may need to approve it).
  2. In the channel where the hand-over should appear, type /dutyroll new.
  3. Fill in the form: the duty's name, the people in order, the channel, weekly (pick the day), every weekday, every 2 weeks or monthly (pick the day of the month or the last Friday, say), and the time. The time is in your Slack time zone.
  4. Dutyroll posts an announcement now, and the hand-over at the time you chose: who is on duty and who is next, with Skip and Swap with next buttons.

What Dutyroll does not do

Related: 12-month on-call schedule template · duty roster in Slack · round robin in Slack

More guides