How to integrate Outlook calendars into SharePoint

This post explores challenges integrating Outlook calendars into SharePoint, offering solutions like Power Automate and the classic calendar app, each with limitations to consider.

In this post we take a look at some of the issues trying to integrate Outlook calendars into SharePoint sites and ways to address them.

The problem

If you search online you will quickly find there has been a long-standing issue with syncing/ connecting/ integrating Outlook calendars with SharePoint Online. An answer to this problem seemed to appear with the re-introduction of the calendar view in Lists, but this still doesn’t solve the problem as you still cannot connect it directly to an Outlook calendar in a modern way.

I came across this issue myself recently and tried to think up some alternate ways to do this as there doesn’t appear to be an out the box way to do it.

Option #1 – Power Automate

This is my favoured solution by far as it allows you to use the modern list views inside SharePoint for a better user experience. This option consists of:

  • An Outlook calendar – Personal calendar in my example, but could be a shared calendar
  • Power Automate flow – Runs when events are added, updated or deleted and switches depending on the type to complete the relevant action
  • SharePoint List – Used to store the Outlook calendar events passed via Power Automate
Example modern calendar in SharePoint.

  • Create a new automated flow flow > select the When an event is added, updated or deleted (V3) Outlook trigger
  • Add a Get items action > add a filter query to retrieve any list items where the Meeting ID matches what has been recorded in the list on creation
  • The Get items action will return 0 items if the event is new and hasn’t been added to the SharePoint list yet. This is expected and will allow the switch case to go ahead and create the event.
  • Add a switch case action > switch on action type
  • Create a new switch case for the following action type outcomes: added, updated and deleted

New (added) calendar events

  • Add a SharePoint create item action within the added switch case
  • Add the relevant details from the calendar event to the SharePoint list item. In my case this was:
    • Title: Subject
    • StartDate: Start time with zone
    • End Date: End time with zone
    • Employee Claims: Organizer
    • MeetingID: Id

Updated calendar events

  • Add a condition within the updated switch case
  • Create a condition where the SharePoint MeetingID is equal to the Outlook Id
  • If true > add a SharePoint update item action > add dynamic content to update all fields other than the Meeting ID
  • If false > do nothing

Deleted calendar events

  • Same initial steps as above, adding a condition within the deleted switch case with a condition to check if the ID’s match
  • If true, add a SharePoint delete item action > delete the list item based on it’s ID
  • If false, do nothing
Example flow for the create, update and delete options within a meeting.

Option #2 – Use classic calendar option

I’ve included this as an alternative way of displaying an Outlook calendar, but please note actually displaying it within a page in SharePoint can be a little clunky as it’s a classic app being used on a modern page.

  • Open your SharePoint site > New > App
  • From the app store > switch to the classic experience
Classic experience option from the SharePoint app store.
  • Find the Calendar app > add it to your site
  • The classic calendar app will open > press calendar from the ribbon > connect to Outlook

Note: This option doesn’t work with the new version of Outlook (2023 onwards). You will need to switch back to the classic view in order to do this,

  • A popup will appear asking to connect the SharePoint calendar with your Outlook account > press allow
  • The classic calendar will automatically sync with Outlook on a daily basis by default. You can change these settings under the options menu in Outlook
  • To embed this calendar on a page in SharePoint, you can use the embed webpart and set the page view to full screen in the classic calendar app to hide the header
Classic calendar app embedded within a SharePoint page.

Notes and limitations

  • The Power Automate option doesn’t handle all day meetings very well. When all day is selected, it appears in the SharePoint list calendar as a two day event.
  • The classic calendar app is not responsive, so does not display well on a mobile device, or via the SharePoint app.
  • The ability to connect to Outlook via the classic calendar is not supported in the new version of Outlook, so it is likely it will stop working eventually.

6 responses to “How to integrate Outlook calendars into SharePoint”

  1. Hello,

    superb flow which helped me a lot, just a small problem with the recurring events which are not deleted if I delete only one of the occurrence or if I delete the complete occurrence. Any ideas? Thx for help

  2. Ahh I hadn’t noticed that, I’ll give it a go and might pinch it for others who stumble across this post!

  3. Hi Mark, thanks for the comment. I’ve updated my post to make the “Get items” step a little clearer, but the gist is that you add a filter query where MeetingID (SharePoint column eq ‘Id’ (ID of Outlook event) to allow the update/ delete switch cases to get the correct event. If the event doesn’t exist, this step will basically skip to the create switch case.

    Hope this helps!
    Anthony

    1. That’s great, thank you much appreciated. After I left my comment yesterday I did persevere and get most it working, but not that bit so it was looping through all the events in the list, I can improve that now.

      Interestingly I have found that the “Id” field from the Outlook trigger is actually returning the same value for every event, and after much head scratching I managed to figure out that it seems to be returning the Calendar ID (despite the decription of that field being “The event’s unique identifier”). I’ve changed it to use the iCalUID field instead (“A unique identifier for an event across calendars. This ID is different…”), which does seem to return a unique value for each event.

      Thanks,
      Mark

    2. Ignore what I just said about “Id” and iCalUID – I’ve got it working with “Id” now 🙂 In fact iCalUID is not returned by the trigger when an event is deleted, so you can’t use iCalUID anyway. Not sure what I did yesterday but with fresh eyes this morning it is working – thank you!

      Can’t believe how much effort Microsoft have made it to display an Outlook calendar on SharePoint!! This is for an internal calendar of training courses. There was an obvious desire not to have to maintain a separate Outlook calendar and SharePoint list. I know it would have been easier if we could have used a group calendar but that didn’t meet various other requirements we have, mainly the need for multiple people to be able to edit an event, and not just the creator of the event. For that reason we had to resort to setting up “dummy” licenced accounts and giving everyone who needs to be able edit the meetings delegate access to it’s calendar.

      Thanks very much for the assist, appreciated 🙂

  4. Hi, this is useful thank. I don’t suppose you have any more details on how to set up option 1, I’m new to Power Automate and can’t see how to set up the filter for example.

    Thank you

Leave a Reply

Recent posts

Discover more from SharePoint Stuff

Subscribe now to keep reading and get access to the full archive.

Continue reading