A while ago I was asked to create a Slack integration that would let people know whether their colleague is on vacation. I thought it was a good idea and promised that I would look into it.

At first, my plan was to create a bot which would reply with a hidden message to the user that has mentioned or sent a direct message to vacationing colleague. There is a little problem with this approach, however, as the bot user needs permission to read the private messages. This seems to be a bit of overkill for this sort of task. We agreed that setting the vacation updates to a user’s status would therefore be good enough.

At Inloop we keep information about vacations in Tempo (Jira plugin). Both Tempo and Slack provide REST APIs. As such, we can take advantage of a Tempo API in order to get info about vacationing users that way. The Slack API can be then used for setting the out of office status.

This integration is written in JavaScript and runs on the server using Node.js. It can be easily rewritten in the language of your choice.