Is there a way to create an iCal link for each record in a table?

Hi - I see we have an extension that allows us to create iCal link to all the records in a table - but what if you want a unique link for each record?

So I have stable with a list of events I run. I want to send an email to participants of each event with a iCal link so they can add it to their calendars…but I can;t see how I can do this?

Any ideas?

Gary

Hi Gary,

Currently, Airtable’s native iCal extension pulls in all records, making it always up-to-date. However, you can achieve unique iCal links for each record by following this workaround. Here’s how you can do it:

Step-by-Step Guide

1. Airtable Table Setup

Ensure your Airtable table has the following fields:

  • Event Name (Single line text)
  • Start Date (Date & time)
  • End Date (Date & time)
  • Ical Link (Formula)
  • HTML (Formula)

2. Create the iCal Link Formula

In the Ical Link formula field, use the following formula to generate the iCal data and links:

"<a href='https://www.google.com/calendar/render?action=TEMPLATE&text=" & ENCODE_URL_COMPONENT({Event Name}) & 
"&dates=" & DATETIME_FORMAT({Start Date}, 'YYYYMMDD\\THHmmss\\Z') & "/" & DATETIME_FORMAT({End Date}, 'YYYYMMDD\\THHmmss\\Z') & 
"&details=" & ENCODE_URL_COMPONENT({Event Name}) & 
"' target='_blank'>Add to Google Calendar</a><br>" &

"<a href='https://outlook.office.com/calendar/0/deeplink/compose?subject=" & ENCODE_URL_COMPONENT({Event Name}) & 
"&startdt=" & DATETIME_FORMAT({Start Date}, 'YYYY-MM-DDTHH:mm:ss') & 
"&enddt=" & DATETIME_FORMAT({End Date}, 'YYYY-MM-DDTHH:mm:ss') & 
"&body=" & ENCODE_URL_COMPONENT({Event Name}) & 
"' target='_blank'>Add to Outlook Calendar</a><br>" &

"<a href='data:text/calendar;charset=utf8," & 
"BEGIN:VCALENDAR%0AVERSION:2.0%0APRODID:-//Airtable//EN%0A" & 
"BEGIN:VEVENT%0A" & 
"UID:" & RECORD_ID() & "%40airtable.com%0A" & 
"DTSTAMP:" & DATETIME_FORMAT(NOW(), 'YYYYMMDD\\THHmmss\\Z') & "%0A" & 
"DTSTART:" & DATETIME_FORMAT({Start Date}, 'YYYYMMDD\\THHmmss\\Z') & "%0A" & 
"DTEND:" & DATETIME_FORMAT({End Date}, 'YYYYMMDD\\THHmmss\\Z') & "%0A" & 
"SUMMARY:" & ENCODE_URL_COMPONENT({Event Name}) & "%0A" & 
"DESCRIPTION:" & ENCODE_URL_COMPONENT({Event Name}) & "%0A" & 
"END:VEVENT%0AEND:VCALENDAR' target='_blank'>Download iCal File</a>"

3. Convert HTML in Airtable to Webpages

To render these HTML links properly, you’ll need to use the “Convert HTML in Airtable to Webpages” extension. Here’s how:

  1. Set up the extension:

    • Go to the Extensions section in Airtable.
    • Add the “Convert HTML in Airtable to Webpages” extension.
  2. Configure the extension:

    • Select the table that contains your events.
    • Use the Ical Link field for the HTML content.
  3. Generate the Webpage Formula:

    • Copy the formula provided by the extension and insert it into the HTML field (also a formula field).

4. Use the Generated Links

Now use that formula in the HTML field in Airtable

Example Output

Each record in your Airtable will have links like this in the Ical Link field:

  • Add to Google Calendar
  • Add to Outlook Calendar
  • Download iCal File

And the HTML field will have a link to view the event page, which you can share with your participants. Here a live example for one of the records.

Screenshot

Here’s an example screenshot of what the final output might look like in your Airtable:
calendar links

This method allows you to provide participants with unique iCal links for each event, ensuring they can add the event to their calendar of choice.


I hope this helps!

3 Likes