Manually approve Microsoft Bookings appointments

Set Bookings to manual approval

Microsoft Bookings is a pretty nice feature that allows you to create services for your customers to request. It’s built on Exchange platform and available for select Office subscriptions (Business Premium + at time of writing this post). In short, you define a set of services that you offer, publish it to the Internet (or as a Facebook-page plugin(!)), and let customers do self-service. Pretty nifty, especially for small local businesses which usually lack on IT resources.

One of the obstacles I have stumbled onto is lack of manual approvals – that is, a customer can book a time which you have forgotten to set as unavailable. Bookings is able to read your calendar and does not display dates where you are busy in your calendar. Currently, once customer finishes Bookings, they immediately receive an e-mail with confirmation and a new meeting is created. This has even been raised on Bookings UserVoice (204 votes so far). ETA for implementing this feature natively is rather unknown, but thankfully we have a mail flow feature in Exchange Admin Center.

Here is a quick roundup of steps that you need to take to set this up:

  1. Login to Exchange Admin Center
  2. Go to Mail Flow, and create new rule as follows:


Booking page mail is created when you first set up Bookings app. If you don’t know it, you can find it in the URL:

A quick explanation of settings: Any mail that goes out from your organization from your bookings mail, that contains mentioned keywords in subject, and goes outside of your organization (to the customer) will be sent for approval to person of your choice. Save the rule and test it. An approval mail will be sent shortly to you, that looks as follows:


Once you press “Approve”, Bookings mailbox will send the message to the customer, confirming their appointment. One thing I noticed is these decision buttons seem not to display properly on Outlook for Android (and possibly for other mobile apps).

Let me know if this helped you, or if you need further assistance, feel free to contact me


Automatic portfolio created from Instagram tags

Hey there!

Recently my SO had that idea to try her strengths in make-up industry. Details aside, she needed some IT to promote her business and that’s where I come in. I created a website, loaded some Bootstrap theme that included nice portfolio (I’m no frontend guy, any interaction with JS/CSS is a no-no for me), and this portfolio had to be populated with actual images. For us to save the work I wrote an ASP.NET code which pulls image data from Azure Table storage, and injects it into view. I decided to use Flow to actually put the data from Instagram to Table storage.

For her clients she makes a photo of before and after – to see the actual difference make-up can do. Every time she posts a photo to Instagram with specific tag, Flow pulls the photo to Azure Table storage, where in turn website queries it and displays photos. you can see the end result here (mind you, some photos are not yet replaced, work in progress 😉 ):

Lyada Website – Makeup

The tags we agreed to use is #LyadaDaily, for all the occasional photos, #LyadaWedding, where she would do the make-up for brides, and #LyadaArt, where the make-up is advanced and serves rather theatrical purpose. This is how it looks on the website:

Screenshot-2018-2-28 Lyada Make-up - mobilna wizażystka Warszawa z dojazdem do klienta

The flow itself is triggered with new Instagram Media:

Screenshot-2018-2-28 Edit your flow Microsoft Flow(1)

Afterwards, the ID of uploaded media is used in activity “Get my recent media”. This retrieves all recent objects, as I want to use this opportunity to update the previous posts as well (I need to update the “Likes” count, to show only top works on website).

Screenshot-2018-2-28 Edit your flow Microsoft Flow(2)

The condition tree is built that way because so far Flow does not support a Switch statement that would simply this task. Right now each condition looks for text matching a specific tag, and processes this entry into Azure Table. If the content doesn’t match, a second and then third condition is evaluated.

Finally, “Insert or Merge entity” is used. I have had to spend some time figuring that one out, but it finally worked. In the Azure Table storage, I chose the PartitionKey \ ID primary key constraints, as these are going to be rather unique. Screenshot-2018-2-28 Edit your flow Microsoft Flow(3)

That aside, if you are not familiar with Flow from Microsoft, check it out on – for non-Office users there is a free tier, which allows for 750 Flow runs per month, with polls (triggers) every 15 minutes.

If you’ve had any troubles with it, let me know and maybe I can help out 🙂

~Alex Pawlak