Send Automated YouCanBookMe (and other) Appointment Reminders Using Microsoft Flow / Power Automate

I have 2 offices, which means that when someone makes an appointment with me, they need to be aware which office I’ll be meeting them at. My appointment provider (YouCanBook.Me) sends an appointment request to both myself and the person making the appointment, and I then update my copy with the location.

This then sends the location out to the person making the appointment. However what happens if that person isn’t used to appointment requests? Perhaps because they’re a college student, and haven’t experienced them yet? Typically they ignore them, or don’t notice the location line or change at all.

This semester I decided to try a new approach. When a person makes an appointment with me, it enters on my calendar with the prefix “Appointment: ” and then the person’s name. This means I can easily find my “self-set” appointments using Microsoft Power Automate (Flow). My goal was to have a script run every night at 8 PM that scans the next 24 hours of my calendar. If it finds an appointment set by someone, it emails them an automated reminder telling them where to meet me. It took me a couple of hours to get up and running, but is now working beautifully. Below is each step of my flow, and how to create it yourself.

The basic workflow in Power Automate – a Recurrence to run the script at a regular interval, a time zone conversion, querying my Outlook Calendar, and then email each appointment’s attendees.
8:00 PM seemed like a good time to remind people about a meeting they had the next day, although you could easily run this the morning of if you wanted to, or before business ended the previous day, say at 4:30.
Power Automate grabs events off my calendar in UTC, however I needed to get myself into Central Time for where I’m at in the U.S. I also needed to take the current time and add 24 hours to it, so that I could catch meetings between right now, and 24 hours from now. I used the Dynamic Content Expression Editor to use the addHours(utcNow(),24) line.
Next we have to get the list of items. The Filter Query here does the magic – it’s using an ODATA filter for anything that starts with Appointment: (including the space after the colon). This means that it only catches appointments created with that prefix, which is what YouCanBookMe is set to do (Your personal settings may have a different prefix if you’ve changed it).
Now that we have our appointments, we need to send an email to the required and optional attendees reminding them. We start by converting the Start Time, again from UTC to Central Time. We then load in an email that we can place the start time and location in.
I’ve customized the email slightly in that I added myself in as a BCC (So I can point to it later and say “See, you got this email”). I also had to set the Importance to Normal, otherwise it will send as Low importance.

And that’s it. The script has been running for a few weeks now without issue, and hopefully it will cut down on my frustration this semester with individuals unaware of where on campus I’m meeting them!