dienstplan: Slack bot for duty rotations
dienstplan is a Slack bot for duty rotations. It’s dead simple: just a few commands to manage on-call duty rotations in your team’s Slack channels. The bot application follows the rule “Do One Thing and Do It Well”. It plays nicely with Slack reminders and workflows.
Usage example
Let’s create a rotation using dienstplan. Just pass in a create command followed by a rotation name, a list of the channel users in a rotation, and a rotation description:
@dienstplan create my-rota @user1 @user2 @user3 On-call engineer's duties: - Process support team questions queue - Resolve service alerts - Check service health metrics - Casual code refactoring- Follow the boy scout rule: always leave the campground cleaner than you found it
Once the rota is set up, the first user in the list becomes a current on-call person. Check it with a who command:
@dienstplan who my-rota
To change the current on-call person to the next one use rotate command:
@dienstplan rotate my-rota
The bot iterates over the users in the list order:
@user1 -> @user2 -> @user3 -> @user1 ...
Now that you know the basics, let’s automate rotation and current duty notifications with Slack’s built-in /remind command. First, set up a reminder to rotate users weekly:
/remind #my-channel to "@dienstplan rotate my-rota" every Monday at 9AM UTC
Second, remind duties to a current on-call person:
/remind #my-channel to "@dienstplan who my-rota" every Monday, Tuesday, Wednesday, Thursday, Friday at 10AM UTC
Get help with:
@dienstplan help
Up & Running
Grab dienstplan from the GitHub repository along with user documentation, installation guide and deployment scripts.