Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
CalendarToSlack automatically sets your Slack status and availability according to events on your Outlook calendar. It updates your Slack availability to Away whenever you have an event, and updates your Slack status to a custom status/emoji that's specific to the calendar event. The custom status is controllable via a configurable whitelist (see Custom Messages).
- Calendar Event Statuses
- Custom Statuses
- Overlapping Events
Calendar Event Statuses
When you create an Outlook event its default Outlook status is "Busy". You can change this to values like "Out of Office" or "Working Elsewhere":
CalendarToSlack uses these Outlook event statuses to control your Slack availability.
- "Out of Office" and "Busy" events mark you Away in Slack.
- "Free", "Working Elsewhere", and "Tentative" don't mark you Away, but will still use whitelisted custom messages.
CalendarToSlack uses the calendar event status (e.g. "Busy" or "Tentative" or "Out of Office") and subject (e.g. "Rob's Awesome Meeting") to set a custom status for your Slack profile. The default custom status text is
Away for "Busy" calendar events and
OOO for "Out of Office" events. It will also set an emoji for your status; the defaults are
:spiral_calendar_pad: for "Busy" events and
:palm_tree: for "Out of Office" events.
You can configure a whitelist to set more specific custom statuses based on the event's subject. If the subject matches a token in the whitelist, the token from the whitelist will be used as the custom status.
Example: If the whitelist contains entries for
Lunch, and an event occurs with the subject "Rob's Awesome Meeting", the Slack status will be set to
Meeting (and not
Rob's Awesome Meeting).
To see the default whitelist, use the
/c2s-whitelist Slack slash command with no arguments.
Specifying Status Emoji
You can also specify an emoji to be used as the status emoji for any entry in your whitelist. To do this, use a
; separator between the desired status text and status emoji, e.g.
- Add a custom status emoji for your visits to another office, like
- Add a custom status emoji for when you work at home, like
Custom messages are also used with "Free", "Working Elsewhere", and "Tentative" events. For these, if a token in the whitelist matches the event subject (e.g.
Lunch), it'll be used for the custom message and your Slack availability will remain Active (green). For these default-Active calendar events, if no whitelist match is found, no custom message will be set.
- Create a "Tentative" event every day called "Lunch" for
Lunchas a custom message. Add
Lunchto your whitelist.
- If working in Boston for a week, create a week-long "Working Elsewhere" Outlook event with the subject of "Boston" for an Active
Bostonto your whitelist.
A whitelist token with a right chevron character
> will map a token (on the left) to a message (on the right). Examples:
Working From Home>WFHwill match an event subject containing "Working From Home" and display
WFHas the custom message.
Weekly>1:1will match an event subject containing "Weekly" and display
1:1as the custom message.
Flight>Traveling;:airplane:will match an event subject containing "Flight" and display
Travelingas the custom status text with an airplane as the emoji.
/back Slash Command
If you get back from a meeting early, you can use the
/back slash command in any Slack channel to remove your Away presence and custom message. This is effectively telling CalendarToSlack to ignore the event it marked you Away for originally.
/back will not affect "Free", "Out of Office", or "Working Elsewhere" events. The assumption is that these (particularly the latter two) are more overarching events that you don't typically "get back early" from. Feedback on this assumption is welcome if it's not the desired behavior.
It make take a few seconds (5-10) for
/back to complete and change your status. Be patient.
/c2s-whitelist Slash Command
You can view and change your Custom Message whitelist using this command. All actions will echo responses into your
@slackbot. To set or remove whitelist entries, use:
/c2s-whitelist set "Working From Home" /c2s-whitelist set "Working From Home" :home: /c2s-whitelist set "Working From Home" "WFH" /c2s-whitelist set "Working From Home" "WFH" :home: /c2s-whitelist remove "Working From Home"
You can also use
/c2s-whitelist to set the default status message / emoji to use when you have no current Outlook events:
/c2s-whitelist set-default "HQ" :hq: /c2s-whitelist set-default "LNK" :nebraska:
The "busiest" event at any given time will be used to control Slack presence and the custom message. "Busiest" is determined by the event status and probably works the way you'd expect it to. "Out of Office" is the busiest, "Free" is the least busy.