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
| Week | On duty | Next |
|---|---|---|
| Week 1 | Dana | Lee |
| Week 2 | Lee | Noa |
| Week 3 | Noa | Ben |
| Week 4 | Ben | Dana |
| Week 5 | Dana | Lee |
| Week 6 | Lee | Noa |
| Week 7 | Noa | Ben |
| Week 8 | Ben | Dana |
Team of 5: every 5th week
| Week | On duty | Next |
|---|---|---|
| Week 1 | Dana | Lee |
| Week 2 | Lee | Noa |
| Week 3 | Noa | Ben |
| Week 4 | Ben | Kim |
| Week 5 | Kim | Dana |
| Week 6 | Dana | Lee |
| Week 7 | Lee | Noa |
| Week 8 | Noa | Ben |
| Week 9 | Ben | Kim |
| Week 10 | Kim | Dana |
Team of 6: every 6th week
| Week | On duty | Next |
|---|---|---|
| Week 1 | Dana | Lee |
| Week 2 | Lee | Noa |
| Week 3 | Noa | Ben |
| Week 4 | Ben | Kim |
| Week 5 | Kim | Ari |
| Week 6 | Ari | Dana |
| Week 7 | Dana | Lee |
| Week 8 | Lee | Noa |
| Week 9 | Noa | Ben |
| Week 10 | Ben | Kim |
| Week 11 | Kim | Ari |
| Week 12 | Ari | Dana |
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
- 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.
- Keep the order stable. People plan around the week they know is theirs. Reorder only when someone joins or leaves.
- Say who is next in the same message. The next person gets a week of notice at no cost.
- 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.
- 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:
[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
- Add Dutyroll to Slack (the workspace admin may need to approve it).
- In the channel where the hand-over should appear, type
/dutyroll new. - 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.
- 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
- It does not page or call anyone and has no escalation; it posts a message in a channel. If you need phone or SMS alerts, use a paging tool and keep Dutyroll (or not) for the visible weekly hand-over.
- It does not sync with PagerDuty, Opsgenie or calendars (it can publish the rota as a read-only calendar link, see
/dutyroll calendar), and does not update a Slack user group (@oncall) yet. - Cadences are weekly (one day), every weekday (Mon-Fri), every 2 weeks or monthly (a day of the month, or the last Friday, say, of it). No custom shift lengths. Away dates are entered in Dutyroll (Mark away, and the hand-over skips that person); there is no sync of away dates from a calendar or HR tool.
- It is new (October 2026) and not yet in the Slack Marketplace; you install it from this site.
Related: 12-month on-call schedule template · duty roster in Slack · round robin in Slack
More guides
- On-call rotation in Slack
- Standup host rotation in Slack
- Support and bug triage rotation in Slack
- Slack rotation app pricing: per workspace vs per user
- Rotating a name with Slack Workflow Builder (and what to use instead)
- Round robin in Slack: a scheduled round-robin app
- Slack rotation apps compared: Pagerly, Rotation App, RosterBird, Dutyroll
- A duty roster in Slack
- Weekly rotation schedule template for a team
- On-call rotation calendar: Google, Outlook, Apple
- Weekend on-call schedule: a fair rotation
- Holiday on-call schedule: fair cover
- On-call handoff template: what to write
- On-call swap request: template and rules
- PagerDuty alternative for a Slack on-call rota