How to Add Recurring Events to Your Airtable Calendar

Let’s say you run programs at a local library. Some events happen just once, like a poetry reading or a guest speaker. Others happen regularly, like Story Time every Wednesday morning or Coding Club every Friday afternoon.

You are using Airtable to stay organized, and it works well for tracking one-time events. But when it comes to recurring ones, things get complicated.

You cannot just set something like "every Friday from June to August" and Airtable handles it. Airtable does not support recurring events automatically.

You can only add one date per record, and that one date is all that shows up in the calendar. If your event happens ten times, you still only see it once. There is no built-in way to repeat an event across multiple days or weeks.

Illustration

Let me walk you through couple of ways how to set up recurring events in Airtable so they appear properly on your calendar.

1. Using Automation and Script

To make this work, you will use two tables.

The first table is called Events. This is where you store the main information about each event.

You will need a text field for the event name, such as Book Club. You should also add a checkbox or single select field named Is Recurring. This will help you mark whether the event repeats or not.

Next, add two date fields. One will be the Start Date and the other will be the End Date. These help define the full date range for the recurring event. For example, if Book Club starts on June 7 and ends on August 30, those are the values you will put here.

You should also add a single select field called Recurring Day. This is used to pick the weekday when the event repeats, like Friday.

If you want, you can include a long text field for notes or additional details.

The second table is called Event Dates. This table will store every individual instance of a recurring event. If your event happens every Friday for eight weeks, this table will end up with eight records, one for each date.

In this table, create a date field called Date. This holds the actual date of the event. Then add a linked record field that connects each date back to the corresponding record in the Events table.

To show event names on your calendar, add a lookup field to pull the Event Name from the linked Events table.

However, since calendar views in Airtable use the primary field, you will also need to create a formula field that simply references the event name from the lookup. Make this formula field the primary field.

Now that you have both tables set up, it is time to add the recurring dates.

Automate it using a script

Instead of adding all the dates manually, you can set up an automation that triggers a script when a new recurring event is created.

This script reads the start date, end date, and recurring day. It loops through each day in that range, and whenever the weekday matches, it creates a record in the Event Dates table and links it back to the main event.

Here is the script you can use:

let eventTable = base.getTable("Events");
let eventDatesTable = base.getTable("Event Dates");

let inputConfig = input.config();
let eventId = inputConfig.recordId;

let eventRecord = await eventTable.selectRecordAsync(eventId);

if (!eventRecord) {
  throw new Error("Event not found");
}

let startDate = eventRecord.getCellValue("Start Date");
let endDate = eventRecord.getCellValue("End Date");
let recurringDay = eventRecord.getCellValue("Recurring Day")?.name;

if (!startDate || !endDate || !recurringDay) {
  throw new Error("Missing one or more required fields");
}

// Mapping day name to number (Sunday = 0, Monday = 1, ..., Saturday = 6)
let dayMap = {
  Sunday: 0,
  Monday: 1,
  Tuesday: 2,
  Wednesday: 3,
  Thursday: 4,
  Friday: 5,
  Saturday: 6,
};

let targetDay = dayMap[recurringDay];
if (targetDay === undefined) {
  throw new Error("Invalid day of week");
}

// Start from the first occurrence on or after the start date
let current = new Date(startDate);
while (current <= new Date(endDate)) {
  if (current.getDay() === targetDay) {
    await eventDatesTable.createRecordAsync({
      Date: current.toISOString(),
      Event: [{ id: eventRecord.id }],
    });
  }

  // Move to next day
  current.setDate(current.getDate() + 1);
}

This approach is simple, clear, and works entirely within Airtable.

2. Use a Calendar

Another way to handle recurring events is to use Google Calendar or Outlook Calendar. These tools are built to manage time, reminders, repeats, and everything else a calendar needs.

You can create recurring events directly inside Google Calendar or Outlook Calendar. Then, using Airtable’s built-in sync feature, you can connect your calendar to your Airtable base. This automatically brings in all the scheduled events, including the repeats, so you don’t need to manually enter them in Airtable.

If you want to create your events inside Airtable first and then send them to Google Calendar or Outlook, you can do that too.

Airtable lets you send event data to your calendar using an automation. You can set it up to trigger when a new event is added and create a matching event in your connected calendar, whether it's Google Calendar or Outlook.

If you need more control or want to sync events in both directions, you can use Make, Zapier, or n8n. These tools give you flexibility to send or receive events from Airtable and keep everything up to date.

Get Airtable tips & tutorials

Get a concise Airtable tip or tutorial every week. No spam—just practical advice to help you get more from Airtable.

Need help or have feedback? Email me at[email protected]