If you want to analyze, filter, or share your calendar data, exporting Google Calendar events to Google Sheets is a useful way to do it. Whether you’re managing project deadlines, meetings, or personal appointments, having your calendar in a spreadsheet makes sorting and reporting much easier.
This article walks you through step-by-step methods to export Google Calendar data into Google Sheets, with or without coding.
Steps to export Google Calendar to Google Sheets using Google Apps Script
➤ Use this script to pull calendar events into your sheet:
function exportCalendarToSheet() {
const calendar = CalendarApp.getDefaultCalendar();
const events = calendar.getEvents(
new Date("2025-06-04T00:00:00"),
new Date("2025-06-14T00:00:00")
);
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clear();
sheet.appendRow(["Title", "Start Time", "End Time", "Description", "Location"]);
for (const event of events) {
sheet.appendRow([
event.getTitle(),
event.getStartTime(),
event.getEndTime(),
event.getDescription(),
event.getLocation()
]);
}
}
➤ Open your Google Sheet, then go to Extensions >> Apps Script
➤ Paste the code, save the script, and click Run
➤ Grant necessary permissions when prompted
➤ Check your sheet, your calendar events will be listed in rows under the header
Export Google Calendar Events to Sheets Using Apps Script
If you want to automatically export your Google Calendar events to a Google Sheet, using Apps Script is one of the most reliable methods. With just a small script, you can pull event details, like title, date, time, and description, directly into a spreadsheet. This is perfect if you want a quick overview of your upcoming schedule or need to analyze or share event data. In this section, we’ll show you how to use a simple Apps Script to fetch calendar events into a 10-row dataset.
This is our Google Calendar from which the events will be exported:
Steps:
➤ Open a Google Sheet.
➤ Click on Extensions >> Apps Script.
➤ Paste the code below:
function exportCalendarToSheet() {
const calendar = CalendarApp.getDefaultCalendar();
const events = calendar.getEvents(
new Date("2025-06-04T00:00:00"),
new Date("2025-06-14T00:00:00")
);
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clear();
sheet.appendRow(["Title", "Start Time", "End Time", "Description", "Location"]);
for (const event of events) {
sheet.appendRow([
event.getTitle(),
event.getStartTime(),
event.getEndTime(),
event.getDescription(),
event.getLocation()
]);
}
}
Code Breakdown:
- The function CalendarApp.getDefaultCalendar() fetches your default Google Calendar. If you want to export events from a different calendar (like a shared or secondary one), replace it with: CalendarApp.getCalendarsByName(“Calendar Name”)[0]
- new Date(“2025-06-04T00:00:00”) and new Date(“2025-06-14T00:00:00”) functions specify the start and end dates for the event range. Change both dates to match the time period you want to export.
- sheet.clear() deletes all content from the current sheet before writing new data. If you want to keep existing content and just add new rows, remove or comment out this line.
- sheet.appendRow([…]) writes each event to the sheet. You can customize the fields (e.g., remove event.getLocation() or add more like event.isAllDayEvent()).
- appendRow([“Title”, “Start Time”, “End Time”, “Description”, “Location”]) iis the header row. You can rename or reorder these as needed to match your output.
➤ Save the script by clicking on the floppy disk icon.
➤ Click the Run button and authorize permissions.
➤ Check your sheet for exported events.
Export Events Using Google Takeout (Manual Method)
If you prefer not to use code or scripts, Google Takeout offers a manual way to export your Google Calendar events. While this method doesn’t provide live updates or automation, it’s great for getting a one-time snapshot of your calendar data. You’ll receive your calendar information in a downloadable .ics file, which can then be viewed in calendar apps or converted to a spreadsheet for analysis.
In this section, we’ll walk you through the step-by-step process to export and prepare your calendar events for Google Sheets.
Steps:
➤ Visit Google Takeout.
➤ Deselect everything, then select only Calendar.
➤ Click Next Step >> Export once >> Create export
➤ Once ready, download the .zip file from the email sent to you.
➤ Extract the downloaded .zip file and locate the .ics file inside.
➤ Instead, convert the .ics file to a .csv format first. You can do this using a free online converter (search “ICS to CSV converter”).
➤ Once converted, go to File >> Import >> Upload in your Google Sheet, choose the .csv file, and follow the prompts to insert it into your spreadsheet.
➤ The events will now appear in rows. You can format the columns (Date, Title, Description, etc.) to organize your calendar data cleanly.
Do note that this method is time-consuming, as it can take hours for the process to complete.
Frequently Asked Questions
Can I automatically sync Google Calendar with Google Sheets?
Yes, using Google Apps Script lets you automatically sync events from your calendar to a spreadsheet, keeping it up to date without manual exports.
What format does Google Takeout export calendar events in?
Google Takeout exports calendar data in .ics (iCalendar) format. You can open it in supported calendar tools or convert it to CSV for Google Sheets.
Can I export only specific calendars from Google Takeout?
Yes. In Google Takeout, after deselecting all products, you can choose individual calendars to export, including personal, shared, or subscribed calendars.
How often does the Apps Script update calendar data in Sheets?
The script only runs when manually triggered unless you set a time-driven trigger. You can schedule automatic updates hourly, daily, or based on your preference.
Wrapping Up
Exporting Google Calendar events to Google Sheets helps you manage time, track tasks, and generate reports. Using the Apps Script method, you can automate the entire process and customize it to your schedule range. If you prefer a one-time export, Google Takeout also works. With either method, your calendar data becomes more flexible and easier to analyze.