Add to Calendar

We maintain our organisation wide calendar through glideapps. It would be really nice if a certain event could be added to the user’s calendar. Sort of a ics file. This feature could be added as an ‘action’ in the dropdown.

Zapier could help here…

For the integration through Zapier to work I would need to have access to every user’s personal calendar. Adding a ‘action link’ within glideapps would circumvent this problem since the users themselves are deciding to add something to their own calendars.

Indeed…

1 Like

I found this which is really interesting. Haven’t had a chance to play with it much. It’s an old article, but the website works and appears to create ics files just by feeding it all of the information in a URL. I would probably recommend using https:// instead of http://.

2 Likes

Thanks Jeff. Can you shed light on how this can be used? Would we add a ‘Email’ component in glide layout and include these parameters in the body of that email?

The way I understand it is it would just be a link component or button link action. You would have to dynamically build the url in the sheet or a template column with all the url parameters (for the event) that would be created in the ice file. I think the article lays out pretty well what the url should look like. Clicking on the link should create the ics file for downloading.

This works to open the outlook and google calendars (with format=gcal) appended to the url provided. But it defaults to current date and time.

It won’t take the parameters that I’m specifying using the template column. This is what I’m using to build the URL:
https://ics.agical.io/?subject=SUBJECT&dtstart=DATE&location=LOCATION&format=gcal

The keywords in capital are being replaced with column names from my data sheet. What am I missing?

I’m not sure I follow. Are you having issues with the template or the with the link not working correctly? What do you have for values that are replacing the the all caps template keywords? Does your start date match the exact format that’s expected? Again, I have no experience with with agical. It’s just something I found while looking for a solution to your problem, so I have no idea how or how well it works.

The values replacing the all caps are column names of my sheet. DATE is a column in my sheet formatted in ISO yyyy-mm-dd. I do think it is a format related issue. I’ll need to play around with it. Just wanted to share in case there is something obvious that I am doing wrong.

Are you escaping (making them URL friendly) the strings? For instance the URL will not work if there are spaces, those would have to be replaced with %20

This looks to be the format for dates that’s needed. Glide does store the zulu date behind the scenes when using a date time picker. You just need to make sure the date in the column looks like that.

2016-05-26T15:00:00-04:00 (with static time offset); or
2016-05-26T15:00:00Z (in UTC, a.k.a. Zulu time)

1 Like

You might want to set the end date for the meeting too, otherwise Google sets it to the current date and time. In which case, the URL format is:

https://ics.agical.io/?subject=SUBJECT&dtstart=DATE1&dtend=DATE2&location=LOCATION&format=gcal

You’ll format that using a Template column, in the Data tab, which looks like this:

And the output will look like this:

https://ics.agical.io/?subject=1st Livestream&dtstart=2020-03-26T11:00:00Z&dtend=2020-03-26T12:00:00Z&location=Office&format=gcal

To format the link so that it opens Outlook / Apple Calendar etc. remove the &format=gcal from the end so:

https://ics.agical.io/?subject=SUBJECT&dtstart=DATE1&dtend=DATE2&location=LOCATION&format=gcal

You’ll need to use both links in order to cater for all users, according to this blog post.

2 Likes

Thanks @alexs, this was really helpful. Have you tried/gotten duration to work instead of dtend. When I try that it gives the same issue as not setting an dtend (sets the the current date and time).

It technically should work based on the blog https://blog.teknkl.com/introducing-agical-io-the-smarter-ics-file-generator/ but not sure why it’s not working for me.

duration — as an alternative to dtend specify a duration like 1H or 30M

Thanks!

1 Like

I’m glad you found that helpful!

I haven’t tried this I’m afraid.

Been playing with this myself.
Works great except that:

  • I can’t get duration to work
  • The appointments are created 1 hour later than what’s saved. All dates are configured in Zulu time. Not sure why it would be adding an hour on?