Let users open a ics file on a SharePoint calendar meeting

When a key user asked me a way to better integrate calendar meetings into the daily lives of their users,  I showed the default ways of working with the calendar: Simply connect the calendar to your Outlook and you can open up the items.

But, she replied, what about our portal site? We just have a specific session every few weeks, ment for a specific audience. We don’t want all our 2000 employees having to open the calendar in Outlook.

A quick search online (insert your own bing-google joke here) brought me to the SharePointProMag site where Dan Holme had this amazing suggestion. This post dates back from 2007, but it still works in SharePoint 2013.

The idea is to build a calculated column that calls the “owssvrs.dll”. This file was already present in FrontPage many years ago, the functionalities make up the primary features of SharePoint, namely list creation, deletion, and authoring. It creates a virtual table that stores data and metadata and forms an abstraction on top of the database. With this, it allows the user to manage tabular data in a Web site environment. As part of the SharePoint module, the owssvr.dll file can be used directly from the browser. The user can utilize it programmatically through a client API. And that is exactly what we do here.

Calculated column

So, to start, we need to create the column. Do this via list settings, not via the ribbon directly, because we will need something extra. Add a new column to the list (calendar) and use the Calculated Column type.

Enter the following formula:

  =”http:// yoursitename/_vti_bin/owssvr.dll?CS=109&Cmd=Display&List=ListID&CacheControl=1&ID=”&ID&”&Using=event.ics”

Change ‘yoursitename’ with the name of the site you currently are. Change ListID with the ID of the list. You can find that listID in the url of the page where you are now (that is why you need to do this via list settings).



If you copy this link to the browser, you will see the calendar item appear as an Outlook calendar item which you can now directly save.

Clickable link

Now, you can do all kinds of tricks to make the link actually clickable. First thing that comes to mind is to create a html link wrapper around it. We need to do 2 things for that:

  1. change the “data type returned” from the calculated column to Number (little trick to make calculated columns become clickable links)
  2. change the formula of the calculated column to:

=”<a href=’http://yoursitename/_vti_bin/owssvr.dll?CS=109&Cmd=Display&List=ListID&CacheControl=1&ID=”&ID&”&Using=event.ics’>open in Outlook</a>”

This gives you following result:

Calculated column in the calendar
Calculated column in the calendar

Calendar displayform

Problem we have is that in the displayform (when you open the item itself in SharePoint), the link is very ugly.

There are various ways to solve this (for example use javascript on the displayform to re-parse the page) but as this post is for key / end users I want to use an easy solution: workflow.

This is something that you can do with SharePoint Designer: create a new workflow on the calendar that runs every time you change / add the calendar item.

The workflow has 3 parts:

  1. Create a new column in SharePoint of type “Hyperlink”
  2. Open SharePoint Designer (or the workflow tool of your choice)
  3. Create a new local variable (in the workflow), called “url” that is of type ‘string’
  4. Add an action “Set Workflow Variable” where you set the new “url” variable to this value:
    • http:// yoursitename/_vti_bin/owssvr.dll?CS=109&Cmd=Display&List=ListID&CacheControl=1&ID=”&ID&”&Using=event.ics, add to outlook
    • Change the “&ID” to the lookup ‘Current item: ID’ (to make sure it uses this item to make a link)
  5. add an action “Set field in current item” where you set the Hyperlink field from step 1 to your workflow variable ‘url’
  6. Save and publish the workflow. Create a new item and let the workflow run.


The end result should look like this:

End result in SharePoint calendar item
End result in SharePoint calendar item


About: Marijn

Marijn Somers (MVP) has over 14 years experience in the SharePoint world, starting out with SP2007. Over the years the focus has grown to Office 365, with a focus on collaboration and document management. He is a business consultant at Balestra and Principal Content Provider for "Mijn 365 Coach" that offers dutch employee video training. His main work tracks are around user adoption, training and coaching and governance. He is also not afraid to dig deeper in the technicalities with PowerShell, adaptive cards or custom formatting in lists and libraries. You can listen to him on the biweekly "Office 365 Distilled" podcast.

6 thoughts on “Let users open a ics file on a SharePoint calendar meeting”

  1. The formula doesn’t work, it gives me an error saying that the format of the formula is incorrect. Can you please guide on this….

  2. Hi, I implemented that and it works great on SP 365. Do you have any idea whether instead of writing “add to outlook” you could also use an image (like an outlook icon) combined with the text? For people that are rather visual, that would be an improvement, unfortunately I do not know what a correct syntax for that would look like (or whether it is possible at all)… Thanks for your help!

  3. The link actually stops working if you edit the calendar item. I noticed it drops the ID it generated. Is there a way around this? These items may need to be edited and I would prefer not to lose the .ics.

  4. Doesn’t work no matter what option I use I get Error
    Cannot complete this action.

    Please try again.
    Guid is correct
    path is correct
    On-Premise 2013

Leave a Reply

%d bloggers like this: