Calendrow
HomePricingHelpGuideSupport

How to add Google Sheets rows to Google Calendar: 3 ways

You have a schedule in a spreadsheet: shifts, classes, events, deadlines. You want it in Google Calendar. Here are the three ways to do it, and the problems each one runs into.

1. Export a CSV and import it into Calendar

Google Calendar can import a CSV file. Give your sheet columns named Subject, Start Date, Start Time, End Date, End Time, All Day Event, Description and Location. Then download it with File → Download → Comma-separated values, and in Calendar go to Settings → Import & export → Import.

Good for: a one-time import that will never change.
Watch out for:

  • Importing again creates every event a second time. There's no update.
  • Changes in the sheet don't reach Calendar.
  • Rows with problems are dropped without telling you which ones.

2. Write a Google Apps Script

In your sheet, open Extensions → Apps Script and loop over the rows with CalendarApp:

function addEvents() {
  const rows = SpreadsheetApp.getActiveSheet().getDataRange().getValues().slice(1);
  const cal = CalendarApp.getDefaultCalendar();
  rows.forEach(([title, start, end]) => {
    if (title && start instanceof Date) cal.createEvent(title, start, end || new Date(start.getTime() + 3600000));
  });
}

Good for: people comfortable with code who want full control.
Watch out for:

  • Duplicates: run it twice and you get every event twice, unless you store each event's ID and update instead of create.
  • Wrong times: mixing the script's time zone, the spreadsheet's time zone and the calendar's time zone moves events by an hour or more, especially around daylight saving.
  • Text that looks like a date: a cell that shows "11/16/2026" may be text, and the script skips it or fails.
  • Overnight shifts: an end time of 6:00 AM on a 10:00 PM shift needs to roll to the next day.
  • Deleted or edited events: if someone changes the event in Calendar, the script never finds out.
  • Long sheets: scripts stop after 6 minutes, and Google limits how many events you can create per day.

3. Use a Google Sheets add-on

An add-on does the bookkeeping for you. Calendrow, for example:

  • links each row to its event, so re-syncing updates instead of duplicating;
  • shows a preview before writing anything;
  • writes a status and reason next to every row;
  • keeps times right across daylight saving.

Good for: schedules that change and need to stay in sync without code.

Quick checklist for any method

  • Make sure dates are real dates. They line up on the right side of the cell.
  • Check File → Settings for the spreadsheet's time zone and locale.
  • Use one row per event with a header row.
  • Decide which is the source of truth, the sheet or the calendar, and edit only that one.
Get Calendrow free

Launching on the Google Workspace Marketplace in November 2026.

Calendrow · Sheets to Calendar sync
© 2026 Brad Alan McBee. Google, Google Sheets and Google Calendar are trademarks of Google LLC. Calendrow is not affiliated with or endorsed by Google.
PricingHelpSupportPrivacyTermsRefunds