Calrows

How to export Google Calendar™ to Google Sheets™ (any date range)

Updated 1 October 2026

For billing, payroll, reporting or just seeing where the month went, you want calendar events as rows in a spreadsheet. Google Calendar has no "export to Sheets" button, so here are the four ways that work, which one to pick, and the mistakes to avoid.

Quick answer

Install the free Calrows add-on, open your sheet, go to Extensions › Calrows › Open sidebar › Import from Calendar, pick the calendar and a date range, and click Import events into a new sheet. You get one row per event with title, start, end, all-day, description, location, guests and colour.

The 4 ways to export Google Calendar data to a spreadsheet, compared

MethodPick a date rangeClean columnsPast eventsEffortCost
Calendar's own Export (.ics file)No, whole historyNo, needs convertingYesHighFree
Apps Script (code below)YesYesYesMedium, some codingFree
Automation tools (IFTTT, Zapier)NoYesNo, only new events from now onLowFree tiers, then paid
A Sheets add-on such as CalrowsYesYesYesTwo clicksFree up to 50 events per export

Method 1: Export Google Calendar to Google Sheets with an add-on (easiest)

  1. Install Calrows from the Google Workspace Marketplace (free).
  2. Open any Google Sheet and go to Extensions › Calrows › Open sidebar.
  3. Choose the calendar at the top. Your own calendars and any calendars shared with you are listed.
  4. Under Import from Calendar, set the From and To dates, for example the first and last day of last month.
  5. Optionally type a name for the new tab, then click Import events into a new sheet.

The new tab has these columns: Title, Start, End, All day, Description, Location, Guests and Color. All-day events show the right dates (Google stores their end date as the following day; Calrows corrects that). Each occurrence of a recurring event becomes its own row.

Two things the other methods can't do:

Method 2: Export Google Calendar data to Sheets with Apps Script (free, some coding)

In your sheet, open Extensions › Apps Script, paste this, change the dates, and click Run. It writes one month of your main calendar into a new tab.

function exportCalendarToSheet() {
  var cal = CalendarApp.getDefaultCalendar();   // or CalendarApp.getCalendarById('[email protected]')
  var start = new Date('2026-09-01T00:00:00');  // first day to include
  var end   = new Date('2026-10-01T00:00:00');  // the day AFTER the last day
  var rows = [['Title', 'Start', 'End', 'All day', 'Location', 'Guests', 'Description']];
  cal.getEvents(start, end).forEach(function (e) {
    var allDay = e.isAllDayEvent();
    var s  = allDay ? e.getAllDayStartDate() : e.getStartTime();
    var en = allDay ? new Date(e.getAllDayEndDate().getTime() - 86400000) : e.getEndTime(); // all-day end is the next day
    var guests = e.getGuestList().map(function (g) { return g.getEmail(); }).join(', ');
    rows.push([e.getTitle(), s, en, allDay, e.getLocation(), guests, e.getDescription()]);
  });
  var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('Calendar export ' + new Date().getTime());
  sheet.getRange(1, 1, rows.length, rows[0].length).setValues(rows);
}

Three things to watch:

Method 3: Calendar's own Export (.ics file)

In Google Calendar, go to Settings › Import & export › Export. You get a ZIP containing one .ics file per calendar.

It's the right tool for a backup or moving to another calendar app, not for getting last month's events into a spreadsheet.

Method 4: Automation tools (IFTTT, Zapier)

Automation services can add a row to a sheet each time a new event is created. That's useful for a running log, but they don't export events that already exist, and they don't update rows when an event is moved or deleted.

Google Calendar export to Excel

Use any method above to get the events into Google Sheets, then choose File › Download › Microsoft Excel (.xlsx). The rows, columns and dates carry over to Excel. To keep the dates as real dates (not text), leave the Start and End columns formatted as date-time before you download.

Frequently asked questions

Can you export Google Calendar to Google Sheets?

Not directly. Google Calendar only exports a whole calendar as an .ics file, which Sheets can't open as rows. Use an add-on such as Calrows, an Apps Script, or an automation tool.

How do I export only one month or a specific date range?

Calendar's own export has no date range. In Calrows: Extensions › Calrows › Open sidebar › Import from Calendar, set From and To, then click Import events into a new sheet.

Does the export include recurring events?

Yes. Each occurrence inside the date range becomes its own row. Calrows marks those rows read-only so it never edits the whole series by accident.

Can I export a shared or team calendar?

Yes, if it's shared with your Google account. Shared calendars appear in the calendar list next to your own.

Will the sheet update when the calendar changes?

With Calrows, yes: click Pull Calendar changes, or on Pro turn on automatic sync with "also pull calendar changes" to refresh it every hour. Apps Script and .ics exports are one-off copies.

Is it free?

Calrows is free for exports of up to 50 events at a time. Pro removes the limit and is a one-time payment with no auto-renewal. Apps Script is free but needs some coding.

Install Calrows, free