Automatic iCal (.ics) hyperlinks for SharePoint calendar items using calculated column


Updated 12/22/19

Important: This concept of using calculated columns will only work as a one-time trick. After adding the column, links will be correct. But because [ID] isn’t meant to be used in calculated columns, it removes itself from the formula if an item is edited after the column has been added. This method is only ideal for one-time uses, or for lists that are not expected to have content additions or changes. See this other post about how to get the same hyperlinks through workflow instead, for a more reliable method.

This project allows users a quick option to save something they see on a SharePoint calendar to their own calendar. Spend 5 minutes on these few instructions and your users will have a convenient way to get involved going forward.

Note that in modern calendar experiences, there’s a built-in “add to calendar” option for event items. This post is for classic experience calendars and calendar items/events.

Basically we’re going to add a calculated text column called iCal which will use the list’s GUID (easy to get, don’t worry) and the specific calendar item’s default ID number to generate a clickable .ics (iCal) file link. Let’s get started!

  1. Go to your calendar
  2. Click “Calendar” in the ribbon
  3. Click “List Settings”
  4. Copy everything in the address bar after “List=”. This should begin with %7B and %7D. This is your calendar’s GUID in hyperlink-friendly formatting.
  5. Create a column (Beneath columns section)
  6. Set it up as follows, pasting your GUID (for now) in the formula field. Don’t click OK yet.
  7. Paste the following in your formula field, moving your GUID to replace the placeholder here. Also put the correct Site URL (, for example)=CONCATENATE(“https://{Site or Subsite URL}/_vti_bin/owssvr.dll?CS=109&Cmd=Display&List={GUID}&CacheControl=1&ID=”,[ID],”&Using=event.ics”)
  8. Click OK
  9. Check the result. Open a calendar item. You should see an iCal item with the hyperlinked text.
  10. Upon clicking the URL, your browser will prompt you to open the file. Open it.
  11. Your email client will open the .ics file. Make any revisions to the calendar item you wish, then simply click save to add it to your calendar.

That’s it! Let me know if you run into any problems.

12 Replies to “Automatic iCal (.ics) hyperlinks for SharePoint calendar items using calculated column”

  1. Hello! I just tried this. URL is working great (after employing Melissa Garcia’s solution of “I replaced all the quotation marks with ” and it stopped giving me the syntax error”.

    However, when I click on the url what downloads for me is the owssvr.dll file.

    Any ideas?

  2. This is a great tutorial, however, I noticed that your screenshot of the event data’s date/time of 4/28 10 to 11am does not match your screenshot of the calendar invite date/time of 12 to 1pm.

  3. Hey , please anyone help how we can fetch start date and time as well as end date and time from SharePoint list by using ics calendar hyperlink so that same event show in Outlook calendar with event start date and end date?

  4. Is there any way to get an attachment to be made part of the meeting notice that is generated? I wanted to incorporate an attached file for each person who creates an event.

  5. This gives me an error with the formula stating: Sorry, something went wrong
    The formula contains a syntax error or is not supported.

    My formula: =CONCATENATE(“{MYGUID}&CacheControl=1&ID=”,[ID],”&Using=event.ics”)

      1. Hi Melissa, would you please put an example. Something like before & after. I have similar formula syntax error. I am getting exactly what do u mean ..I replaced all the quotation marks with ” ..

  6. I have added the formula and it seems to work with all events that were already added. However, if I add a new event the event ID does not get added. Therefore, the ics file opens with everything blank.

      1. It is not a good idea to use fields which are not in the list when defining calculated fields. ID are not mentioned. And as you experiences, IDs are filled in for existing items, but not for new items.

        Solid solution is to use jslink to generate the data/URL.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.