# Add to Calendar

**URL:** <https://community.glideapps.com/t/add-to-calendar/4230>\
**Category:** Feature Requests\
**Created:** [February 3, 2020, 9:53pm UTC](https://community.glideapps.com/t/add-to-calendar/4230 "2020-02-03T21:53:42Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Food2Soil](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/food2soil/32/659_2.png) [@Food2Soil](https://community.glideapps.com/u/Food2Soil)\
**Post date:** [February 3, 2020, 9:53pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/1 "2020-02-03T21:53:42Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Christophe\_HK](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/christophe_hk/32/4161_2.png) [@Christophe\_HK](https://community.glideapps.com/u/Christophe_HK)\
**Post date:** [February 3, 2020, 9:55pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/2 "2020-02-03T21:55:57Z")

</div>

Zapier could help here…

> **[How to create Google Calendar events from a Google Sheets spreadsheet -...](https://zapier.com/apps/google-calendar/tutorials/how-to-create-calendar-events-from-spreadsheet-tutorial)**
>
> Google Calendar events keep you and your team organized and on track. But creating events on Google Calendar can be tedious when you do it repeatedly. Not to mention, manually entering dates and time...

---

<div class="post-metadata">

**Author:** ![Food2Soil](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/food2soil/32/659_2.png) [@Food2Soil](https://community.glideapps.com/u/Food2Soil)\
**Post date:** [February 3, 2020, 9:59pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/3 "2020-02-03T21:59:45Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Christophe\_HK](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/christophe_hk/32/4161_2.png) [@Christophe\_HK](https://community.glideapps.com/u/Christophe_HK)\
**Post date:** [February 3, 2020, 10:00pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/4 "2020-02-03T22:00:11Z")

</div>

Indeed…

---

<div class="post-metadata">

**Author:** ![Christophe\_HK](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/christophe_hk/32/4161_2.png) [@Christophe\_HK](https://community.glideapps.com/u/Christophe_HK)\
**Post date:** [February 3, 2020, 10:02pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/5 "2020-02-03T22:02:18Z")

</div>

> **[Creating Calendar events using Google Sheets data with AppScript](https://towardsdatascience.com/creating-calendar-events-using-google-sheets-data-with-appscript-203b26446ce9)**
>
> Among occasions and excursions, monitoring your schedule can get dubious every once in a while. Today I’m going to show you how to…

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [February 4, 2020, 1:08am UTC](https://community.glideapps.com/t/add-to-calendar/4230/6 "2020-02-04T01:08:10Z")

</div>

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://.

> **[Introducing Agical.io, the smarter ICS file generator](https://blog.teknkl.com/introducing-agical-io-the-smarter-ics-file-generator/)**
>
> If you've used Marketo's dynamic ICS files (the "Calendar File" token type) you're probably not completely happy with 'em. While undeniably useful, they lack certain key elements we're used to when sending invites and requests via Outlook or other...

---

<div class="post-metadata">

**Author:** ![Food2Soil](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/food2soil/32/659_2.png) [@Food2Soil](https://community.glideapps.com/u/Food2Soil)\
**Post date:** [February 5, 2020, 6:59pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/7 "2020-02-05T18:59:16Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [February 5, 2020, 7:31pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/8 "2020-02-05T19:31:48Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Food2Soil](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/food2soil/32/659_2.png) [@Food2Soil](https://community.glideapps.com/u/Food2Soil)\
**Post date:** [February 6, 2020, 7:13pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/9 "2020-02-06T19:13:43Z")

</div>

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](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?

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [February 7, 2020, 4:05am UTC](https://community.glideapps.com/t/add-to-calendar/4230/11 "2020-02-07T04:05:13Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Food2Soil](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/food2soil/32/659_2.png) [@Food2Soil](https://community.glideapps.com/u/Food2Soil)\
**Post date:** [February 7, 2020, 5:11am UTC](https://community.glideapps.com/t/add-to-calendar/4230/12 "2020-02-07T05:11:43Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![George\_B](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/george_b/32/534_2.png) [@George\_B](https://community.glideapps.com/u/George_B)\
**Post date:** [February 7, 2020, 5:14am UTC](https://community.glideapps.com/t/add-to-calendar/4230/13 "2020-02-07T05:14:38Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [February 7, 2020, 5:14am UTC](https://community.glideapps.com/t/add-to-calendar/4230/14 "2020-02-07T05:14:40Z")

</div>

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)

---

<div class="post-metadata">

**Author:** ![alexs](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alexs/32/4516_2.png) [@alexs](https://community.glideapps.com/u/alexs)\
**Post date:** [March 25, 2020, 9:21pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/15 "2020-03-25T21:21:22Z")

</div>

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:

 ![Screenshot 2020-03-25 at 21.52.53](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/7/7a922fc4ff35f16a15de037319e5746216d8ddf9.png)

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](https://blog.teknkl.com/agical-io-now-supports-add-to-google-calendar/).

---

<div class="post-metadata">

**Author:** ![ilias92](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ilias92/32/1429_2.png) [@ilias92](https://community.glideapps.com/u/ilias92)\
**Post date:** [May 2, 2020, 7:06pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/16 "2020-05-02T19:06:45Z")

</div>

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/](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!

---

<div class="post-metadata">

**Author:** ![alexs](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alexs/32/4516_2.png) [@alexs](https://community.glideapps.com/u/alexs)\
**Post date:** [May 4, 2020, 2:04pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/17 "2020-05-04T14:04:16Z")

</div>

I’m glad you found that helpful!

> [@ilias92](#):
>
> Have you tried/gotten duration to work instead of dtend.

I haven’t tried this I’m afraid.

---

<div class="post-metadata">

**Author:** ![BigMac](https://avatars.discourse-cdn.com/v4/letter/b/e8c25b/32.png) [@BigMac](https://community.glideapps.com/u/BigMac)\
**Post date:** [May 15, 2020, 9:21pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/18 "2020-05-15T21:21:02Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![mediazombie](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mediazombie/32/2755_2.png) [@mediazombie](https://community.glideapps.com/u/mediazombie)\
**Post date:** [September 17, 2020, 3:53am UTC](https://community.glideapps.com/t/add-to-calendar/4230/19 "2020-09-17T03:53:21Z")

</div>

I just wanted to add this here for anyone who might find it useful. Google released a new Calendar entry shortcut that I was able to use as a button action to open up a user’s Google Calendar and let them immediately add an entry. Right now it opens the desktop version of calendar entry in the mobile browser, so it’s not ideal from a UX/UI perspective, but it’s quick!

I added a Calendar URL column in a sheet and pointed it to “cal.new”. Then I added a button with an ‘Open Link’ action that uses that URL column.

Here’s the article for reference:

> **[Google’s ‘.new’ shortcut now works with calendar entries](https://www.theverge.com/2019/10/25/20931829/google-calendar-new-shortcut-browser-top-level-domain)**
>
> Try it out using ‘cal.new’ now

---

<div class="post-metadata">

**Author:** ![Jen\_NYCP](https://avatars.discourse-cdn.com/v4/letter/j/848f3c/32.png) [@Jen\_NYCP](https://community.glideapps.com/u/Jen_NYCP)\
**Post date:** [March 18, 2021, 5:03pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/20 "2021-03-18T17:03:58Z")

</div>

> [@alexs](#):
>
> To format the link so that it opens Outlook / Apple Calendar etc. remove the `&format=gcal` from the end so:

Thanks for this! the `&format=gcal` is still there however…

---

<div class="post-metadata">

**Author:** ![Alessandro](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alessandro/32/25019_2.png) [@Alessandro](https://community.glideapps.com/u/Alessandro)\
**Post date:** [March 21, 2021, 10:00pm UTC](https://community.glideapps.com/t/add-to-calendar/4230/21 "2021-03-21T22:00:46Z")

</div>

@BigMac Same here, I also tried to set the format this way: `2016-05-26T15:00:00- **00:00** (with static time offset) but 1 hour is added by default… 🤨 anybody has found a solution? Very cool feature btw

[Next page](https://community.glideapps.com/t/add-to-calendar/4230.md?page=2)
