Microsoft Power Automate (Flow): SMS Outlook appt reminders

Decorative title image of Microsoft Flow/PowerAutomate, Outlook logos and phone with SMS message clipart

All product names, logos, and brands used in this post are property of their respective owners.

Through September 30, 2020, Outlook 365 supported text (SMS) messaging of calendar items/appointments out of the box, but only for a handful of cell providers (AT&T, Sprint, T-Mobile, and Verizon in the US) and a few countries (United States, Canada, and Romania). I used the feature heavily when my mobile carrier was T-Mobile (several years ago), but none of my subsequent mobile phone carriers are supported by the OOB functionality.

If your carrier is not supported (or you are reading this after September 30, 2020), no fear! You can use Microsoft Power Automate (Flow) to create your own SMS/Text message notifications for calendar events in Outlook. I have tested this approach successfully with both Cricket Wireless and Republic Wireless, but it should apply to any mobile carrier with an email to SMS gateway (email address) (Metro PCS, Boost Mobile, Straight Talk, Virgin Mobile, etc.).

Using an SMS gateway is generally free. You can also setup true SMS notifications in MS Power Automate (Flow) with Twilio but a small cost is involved.

Quick tips

Read on for more detailed information about these tips

  • Use the Recurrence trigger to run the flow at an interval
  • Get the current time (UTC) with the Get current time action
  • Use the Get future time action to establish a “look ahead” time (UTC) for upcoming events
  • Use the Get calendar view of events (V2) action to get events occurring between the current time and look ahead interval
  • Loop through the events with Apply to each (added automatically by Power Automate (Flow))
  • Make the date/time human readable with Convert time zone
  • Use a custom condition to see if the meeting has a reminder set
  • Use the Send an Email action to send the details as SMS/text using your carrier’s email to SMS gateway address

The completed flow

Overview of the entire flow

Recurrence

Nothing fancy here - I used 15-minute recurrence since my reminders are all set to 15 minutes in Outlook anyway.

MS Power Automate (Flow) Trigger: Recurrence

Get current time

This action has no options - simply add it to the flow

MS Power Automate (Flow) Action: Get current time

Get future time

This action is straightforward as well; I used it to set up a “look ahead” interval that will be used later. I matched the same 15-minute setting used in Recurrence.

MS Power Automate (Flow) Action: Get future time

Get calendar view of events (V2)

This action is where the magic happens. Other triggers and actions exist to retrieve events from calendars (i.e. When an upcoming event is starting soon, Get event (V2), etc.) BUT those do not take into account recurring events. Get calendar view of events (V2) does! The inputs for this action are easy as well; I simply passed in the current time and 15 minutes from the current time (as set in previous actions):

MS Power Automate (Flow) Action: Get event (V2)

Convert time zone

The Start time from Get calendar view of events (V2) is a little messy for SMS by default; it resembles sortable Coordinated Universal Time (UTC). I was only interested in the meeting time (12-hour format with AM/PM) - Convert time zone made it very easy to perform the conversion.

MS Power Automate (Flow) Action: Convert time zone

Condition

I wanted my flow to respect the Reminder or Notification settings defined on meetings in Outlook. That is, if an event has no Reminder, I do not want to receive an SMS notification. The Reminder field from Get calendar view of events (V2) contains the number of minutes (as a string) before the event notification should be sent or displayed. It is empty if the Reminder is set to “None”. Using this custom condition, I only send the SMS message to my phone if Reminder is not empty:

@empty(string(items('Apply_to_each')?['Reminder']))

MS Power Automate (Flow) custom Condition

Send an email

Finally, I used this action to send a brief notification message to my phone using my carrier’s SMS gateway. Nothing special, just a few useful fields from Get calendar view of events (V2), like Subject, Converted time, and Location.

MS Power Automate (Flow) Action: Send an email

Final comments and limitations

This approach assumes you want reminders at a specific interval before events begin (i.e. 15 minutes for the purpose of this post). It does not respect the reminder timing specified in the events themselves. That is, if an event has a reminder set for 30 minutes before it starts, the SMS notification would still occur 15 minutes before.

Additionally, in my experience, Get calendar view of events (V2) does interesting things when:

  • Some instances of a recurring series are modified (the series itself is not)
  • You do not dismiss event reminders (if the event lasts longer than the look ahead interval)

In those cases, I have observed multiple SMS reminders for events.

Thanks to Martin Bossev for inspiring me to revisit this post - originally, I used When an upcoming event is starting soon and Get event (V2) which works but does not capture recurring events (so there are no reminders).

This new approach using Get calendar view of events (V2) is more robust in that regard.

In any case, I hope this post benefits someone who is not using one of the “mainstream” mobile phone carriers or someone who lost this functionality after September 30, 2020 (MC178212). If you end up improving on my logic, please share in the comments.