Dutyroll

On-call swap request: a template and six rules for swapping shifts

Someone has a wedding, a flight or a sick child in their on-call week. A swap solves it if it is quick to ask, clear to accept and visible to the whole team. A swap that lives in two people's direct messages is the one that leaves nobody on call.

The swap request template

Post it in the team channel, not in a private message:

On-call swap request
From: [name], currently on call [dates]
Ask: cover [dates] and I take [dates] in return, or I owe you one
Why (optional): [one line]
Needs an answer by: [date and time]

Reply "I take it" to accept. Once accepted, I update the schedule and confirm here.

Six rules for on-call swaps

  1. Ask in the open. The channel shows who has already been asked and who answered, so people are not asked twice.
  2. Give dates, not "next week". Both people confirm the exact start and end, including the time zone.
  3. Trade like for like. Swap a weekend for a weekend and a holiday for a holiday, or the person who always says yes ends up with all the bad weeks.
  4. The schedule changes the same day. The shared rota, the calendar and the escalation tool must name the new person before the old person leaves.
  5. The original person stays the fallback until the swap is confirmed in writing.
  6. Keep a count. A person who swaps away three weeks in a row is asking for a different schedule, not another swap.

What Dutyroll does for swaps

Dutyroll covers the simplest swap. Each hand-over post in your channel has a Swap with next button: the person on duty and the next person in the order trade places, and the post says so. Skip moves the turn past someone who cannot take it. Everyone in the channel sees the change.

On call this week: @sam. Next: @priya.
[Skip] [Swap with next]

Dutyroll does not negotiate a swap between two arbitrary people or track who owes whom: agree that in the channel with the template above, then use the buttons if the swap is with the next person.

Need the whole year laid out first? The free rotation schedule generator builds it from your names.

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: on-call handoff template · holiday on-call schedule · weekend on-call schedule

More guides