The format Google Calendar expects
Row 1 must hold these headers, in English, spelled exactly like this. Only the first two are required; leave out any you don’t need.
| Header | What to put in it | Example |
|---|---|---|
Subject | The event name (required) | Final exam |
Start Date | The first day (required) | 05/30/2026 |
Start Time | Start time; leave empty for an all-day event | 10:00 AM |
End Date | The last day | 05/30/2026 |
End Time | End time | 1:00 PM |
All Day Event | True or False | False |
Description | Notes | 50 questions and two essays |
Location | Place or address | Room 614 |
Private | True to mark the event private | True |
Write dates as MM/DD/YYYY and times with AM or PM. Those are the formats Google’s own help page uses, and they avoid the classic mix-up where 03/04 is read as April 3. Text that contains commas is fine: spreadsheet apps put quotes around it when they save the CSV.
Build the columns with formulas
You rarely need to retype a schedule. Add a new tab called Import, put the nine headers in row 1, and pull each column from your own sheet with a formula. If your data is in a tab called Schedule with the title in A, a start date-time in B and an end date-time in C:
| Import column | Formula in row 2 |
|---|---|
| Subject | =Schedule!A2 |
| Start Date | =TEXT(Schedule!B2, "mm/dd/yyyy") |
| Start Time | =TEXT(Schedule!B2, "h:mm AM/PM") |
| End Date | =TEXT(Schedule!C2, "mm/dd/yyyy") |
| End Time | =TEXT(Schedule!C2, "h:mm AM/PM") |
| All Day Event | False |
Fill the formulas down as far as your rows go (select row 2 and the rows below, then Ctrl+D, or ⌘+D on a Mac). TEXT turns real dates into exactly the text Calendar wants, whatever your spreadsheet’s locale. If TEXT returns the same thing you typed rather than a formatted date, your source cell is text, not a date: fix that first.
For all-day events, leave Start Time and End Time empty and put True in All Day Event. Delete any formula rows below your last event before saving, or they import as blank events or errors.
Repeating events: one row per date
The CSV format has no repeat rule. Google’s help says repeating events from a CSV arrive as a series of one-time events, so make one row per occurrence. A formula can write the dates for you. For a class every Monday for 15 weeks from September 7, 2026, in the Start Date column:
=ARRAYFORMULA(TEXT(DATE(2026, 9, 7)+7*SEQUENCE(15, 1, 0), "mm/dd/yyyy"))
It returns 09/07/2026, 09/14/2026, 09/21/2026 and so on (we checked the first weeks). Use +1* for daily, +14* for every other week, and copy the Subject and times down alongside. Because the events aren’t linked, you can’t edit “all events in the series” later; to move them, delete the calendar they went into and import a corrected file.
Save the file as CSV
- Google Sheets: open the Import tab and choose File → Download → Comma-separated values (.csv). Only the tab you’re looking at is saved.
- Excel: File → Save As and choose CSV UTF-8 (Comma delimited). Google Calendar can’t read .xlsx files directly.
Test in a new calendar first
Google Calendar has no “undo import”. If 300 events land on the wrong dates, you delete them one by one. So import into an empty calendar first:
- In Google Calendar on a computer, next to Other calendars click + → Create new calendar. Call it “Import test”.
- Import your file into that calendar (next step) and check a few events: the right day, the right time, all-day where expected.
- If it’s wrong, delete the whole test calendar in its settings and every imported event goes with it. Fix the sheet and try again.
- When it’s right, import the same file into your real calendar and delete the test calendar.
Import the file
- Open Google Calendar on a computer (the phone app can’t import).
- Click the gear icon → Settings → Import & export.
- Click Select file from your computer and choose your CSV.
- Pick the calendar to add the events to, then click Import. Google tells you how many events it imported.
When the import fails
- “Unable to process your file” or 0 events imported. Check the headers first: English, exact spelling, in row 1, with no blank row above. Then check for a stray empty row of formulas at the bottom.
- Events on the wrong day. The dates weren’t MM/DD/YYYY. Rebuild them with
TEXT(…, "mm/dd/yyyy"). - Events at the wrong time. A CSV carries no time zone, so check that your calendar’s time zone (Settings → General) is the one your times are written in.
- End before start. An event that ends before it starts is rejected. Overnight events need the next day’s date as End Date.
Import error messages, and what they mean
These come from Google’s own “Fix problems importing” help page, matched with the usual cause in a spreadsheet:
- “Processed zero events”. Often the Import button was clicked twice: the first click worked, and the second found nothing new. Check the calendar before importing again, or you’ll get duplicates.
- “Processed x of y events”. Some rows couldn’t be read. Look for rows with an empty Subject, an invalid date such as 02/30/2026, or an End before the Start.
- The file is too big. Google Calendar only takes files of 1 MB or smaller. That’s thousands of rows, but long descriptions add up. Split the rows into two tabs and download each as its own CSV.
- Semicolons instead of commas. Calendar doesn’t read files separated by
;. Excel in many European languages saves “CSV” with semicolons. Download from Google Sheets instead, which always uses commas, or open the file in a text editor to check. - Accents or symbols look wrong. The file wasn’t saved as UTF-8. In Excel choose CSV UTF-8; Google Sheets downloads are UTF-8 already.
What CSV import can’t do
A CSV import is a one-way, one-time copy. It has no columns for guests, colours or repeating events. Importing a corrected file adds a second copy of every event instead of fixing the first. And changes you make in the sheet afterwards never reach the calendar. If your schedule will change, use a method that remembers which event belongs to which row: the free Apps Script in our guide to creating events from Google Sheets, or an add-on.
Frequently asked questions
What columns does Google Calendar need in a CSV file?
Subject and Start Date are required. Optional: Start Time, End Date, End Time, All Day Event, Description, Location and Private. The headers must be in English and spelled exactly like that.
Can I import an Excel file into Google Calendar directly?
No. Save it as CSV first (File > Save As > CSV UTF-8), then import the CSV in Google Calendar's Settings > Import & export.
How do I undo a Google Calendar import?
There is no undo button. That is why it's worth importing into a new, empty calendar first: if something is wrong, delete that calendar and all its imported events go with it.
Why does importing my CSV again create duplicates?
Each import adds new events; Calendar doesn't match them to events it imported before. To make changes, edit the events, delete and re-import, or use a script or add-on that keeps each row linked to its event.
Can I import guests or repeating events from a CSV?
No. The CSV format has no column for guests, colours or repeat rules. Apps Script or an add-on such as CalendarRows can set them.
Is there a size limit for importing a CSV into Google Calendar?
Yes. Google Calendar only imports files of 1 MB or smaller. Split larger files into several CSVs and import them one at a time.
Can I import a CSV into a shared calendar?
Yes, if you have permission to make changes to events on it. Choose that calendar in the import dialog. Everyone who can see the calendar will see the imported events.
Can I import a CSV from my phone?
No. Importing only works in Google Calendar on a computer. Upload the file from a laptop or desktop; the events then sync to your phone.
Related
- How to send Google Form responses to Google Calendar
- How to put a shift schedule from Google Sheets into Google Calendar
- How to create Google Calendar events from Google Sheets
- How to export Google Calendar to Google Sheets
- CalendarRows documentation
- All guides
Disclosure: we make CalendarRows, the Google Sheets add-on mentioned in this guide. We describe the other methods as fairly as we can, including when they are the better choice.
Google Sheets and Google Calendar are trademarks of Google LLC. Microsoft and Excel are trademarks of the Microsoft group of companies. Zapier is a trademark of Zapier, Inc. CalendarRows and Cellbrook are not affiliated with or endorsed by Google, Microsoft or Zapier.