๐Ÿ“…CSVโ†’ICS

How to Import a CSV into Google Calendar

Google Calendar can swallow a CSV directly โ€” if the file follows its rules. Here are both working routes: the built-in import with its exact requirements, and the convert-to-ICS route that avoids its sharp edges.

๐Ÿ“…
Written by Casey Marlin ยท Last updated
This update: steps written against Google Calendar's current import flow; if Google moves a menu, tell us and we'll update
Two routes to import a CSV into Google Calendar: direct CSV import on desktop web with Google English headers, versus converting to ICS first for preview, timezones and unique IDs

The two routes at a glance

Both routes finish at the same screen inside Google Calendar. The difference is entirely in what the file itself is able to carry โ€” a CSV row is just text in columns, while an ICS event carries its own timezone, recurrence rule and unique ID.

Google Calendar's CSV column reference

These are the only headers Google recognises, spelled exactly this way, in English. Any other column is ignored โ€” which is why an export from another calendar app usually needs renaming before Google will touch it.

HeaderRequiredFormat / example
SubjectYesFree text โ€” Team standup
Start DateYesMM/DD/YYYY โ€” 05/30/2026
Start TimeNo12-hour with AM/PM โ€” 10:00 AM
End DateNoMM/DD/YYYY โ€” defaults to Start Date
End TimeNo12-hour with AM/PM โ€” 1:00 PM
All Day EventNoTrue or False
DescriptionNoFree text โ€” wrap in quotes if it contains commas
LocationNoFree text โ€” wrap in quotes if it contains commas
PrivateNoTrue or False

Two details trip people up more than any other. Dates must be US month-first order, so a European sheet full of 30/05/2026 will either fail or, worse, silently import 05/30 as a different day where both halves are under 12. And times must be 12-hour with AM/PM โ€” a 24-hour 14:00 is not understood. Our converter has no date-order switch: ambiguous numeric dates such as 03/04/2026 are read month-first unless the first number exceeds 12. Prefer ISO dates (2026-05-30) โ€” they are never ambiguous.

Route A โ€” Google's built-in CSV import

1

Format the file first. The header row must use Google's English column names โ€” Subject and Start Date are required; Start Time, End Date, End Time, All Day Event, Description, Location and Private are optional. Our sample.csv on the homepage is already in this exact shape.

2

Open Google Calendar in a desktop browser (calendar.google.com). Import is not available in the iOS/Android app.

3

As of 2026 โ€” menu names move: click the gear icon โ†’ Settings โ†’ Import & export (left sidebar) โ†’ Import.

4

Click 'Select file from your computer' and choose your CSV.

5

Pick the destination calendar in the 'Add to calendar' dropdown. Consider creating a fresh calendar first โ€” if the import goes wrong you can delete the whole calendar instead of hundreds of events.

6

Click Import. Google reports how many events were added; they appear immediately.

Know the limits before you click Import: no undo, no recurring events, no per-event timezone (everything lands in the destination calendar's zone), and re-importing the same file duplicates every event.

Route B โ€” convert to ICS first (safer)

This is also the answer to โ€œhow do I convert a CSV file to an iCal fileโ€ โ€” iCal and ICS are the same format, and the CSV to iCal converter covers the naming question in full.

1

Convert your CSV with our CSV to ICS converter. It accepts messy headers and mixed date formats, lets you pick the correct timezone, and previews every event before you download โ€” all in your browser.

2

Download the .ics file it generates.

3

As of 2026 โ€” menu names move: in Google Calendar on the web, gear icon โ†’ Settings โ†’ Import & export โ†’ Import โ†’ select the .ics file โ†’ choose the destination calendar โ†’ Import.

Why bother with the extra step? The ICS carries a proper timezone definition (so a 9:00 AM event stays 9:00 AM), you catch bad rows in the preview instead of in your calendar, and each event gets a unique ID โ€” importing the same ICS twice doesn't double your events the way CSV does. Start on the converter homepage.

Importing from a phone โ€” Android or iPhone

Short version: the Google Calendar app cannot import files at allโ€” not CSV, not ICS. There is no import screen in the Android or iOS app, so โ€œhow do I import a CSV to Google Calendar on my phoneโ€ has two honest answers:

  1. Use the desktop site from your phone's browser. Open calendar.google.com in Chrome or Safari, switch the browser to โ€œDesktop siteโ€ (Chrome: โ‹ฎ menu โ†’ Desktop site; Safari: aA โ†’ Request Desktop Website), then follow Route A above โ€” the import screen appears exactly as on a computer. Fiddly on a small screen, but it works.
  2. Do the import on any computer once โ€” the events sync to the app on your phone automatically. This is the route we recommend if a computer is within reach.

Either way, converting the CSV to ICS here first (Route B) gives you the preview and timezone safety before you commit โ€” and the .ics travels fine by email if you need to move it between devices.

When the import fails โ€” error by error

Google's import errors are famously terse. Here is what each one usually means in practice, and the fastest fix.

What you seeMost likely causeFix
Could not upload your eventsA header Google doesn't recognise, or a row missing Subject or Start DateRename headers to the exact names above; delete or fill blank rows
0 events imported, no errorThe file saved as something other than CSV โ€” .xlsx or tab-separatedRe-export as comma-separated CSV, or drop the original into our converter
Events land on the wrong dayDD/MM dates being read as MM/DDRewrite dates as MM/DD/YYYY, or convert to ICS where the order is unambiguous
Every event shows as all-dayStart Time missing or in 24-hour formatUse 10:00 AM style times in both Start Time and End Time
Accented text imports as mojibakeThe file is not UTF-8 โ€” usually a Windows Excel exportSave as 'CSV UTF-8' in Excel; our converter reads and re-emits UTF-8 either way
Everything imported twiceThe same CSV was imported more than onceThere is no dedupe for CSV โ€” delete and re-import from an ICS, which carries UIDs

If you hit two or more of these on the same file, stop patching the CSV and take Route B. Fixing headers, date order and encoding by hand in a spreadsheet takes longer than one pass through a converter that shows you the parsed result before anything is committed โ€” especially given that the import you are about to run cannot be undone.

CSV to Google Calendar โ€” FAQ

Can Google Calendar import a CSV file directly?

Yes โ€” it's one of the few calendar apps that can. As of 2026 โ€” menu names move: on the web, open Settings โ†’ Import & export โ†’ Import, select the CSV, pick a destination calendar and click Import. The file needs English headers (Subject, Start Date, etc.) and Subject + Start Date are mandatory. The Google Calendar mobile app cannot import files at all โ€” this is desktop-web only.

Why does Google Calendar say 'Could not upload your events' for my CSV?

Usually one of four things: non-English column headers (translate them to Subject, Start Date, โ€ฆ), a missing Subject or Start Date on some row, ambiguous or malformed dates, or the wrong file encoding. Converting the CSV to ICS with our converter sidesteps all four, because you get to preview and fix events before anything reaches Google.

Can I undo a Google Calendar import?

No โ€” there is no bulk undo. Every imported event has to be deleted by hand if the import goes wrong, which is the single best argument for previewing first. Importing the same file twice also duplicates every CSV event, since CSV rows carry no unique IDs for Google to deduplicate on.

Does Google Calendar's CSV import support recurring events?

No. CSV import creates single events only. To import repeating events, convert to ICS and add RRULE lines (see our guide to creating ICS files), or recreate the recurrence in Google Calendar after importing the first occurrence.

What timezone does Google use for imported CSV events?

The destination calendar's timezone โ€” CSV rows can't specify their own. If your spreadsheet times were written for a different zone, every event shifts. The ICS route fixes this: our converter embeds the timezone (with DST rules) in the file, and Google respects it regardless of your calendar's setting.

How do I upload a CSV file to my Google Calendar?

Upload happens inside the import flow. As of 2026 โ€” menu names move: on desktop web, gear icon โ†’ Settings โ†’ Import & export โ†’ Import โ†’ 'Select file from your computer', choose the CSV, pick a destination calendar and click Import. There is no drag-and-drop upload and no way to upload from the mobile app โ€” desktop web is the only door.

Why won't Google Calendar import an ICS file?

Almost always a malformed file: missing VCALENDAR wrapper, events without the required DTSTART/UID fields, broken line endings, or an ICS produced by a buggy exporter. Run the file through our ICS validator to see the exact errors, fix them (or regenerate the file with the converter here), and re-import. Files our converter produces follow RFC 5545 and import cleanly.

Should I import CSV directly or convert to ICS first?

Direct CSV is fine for a simple, clean, already-Google-formatted file landing in a calendar whose timezone matches. Convert to ICS first when headers are non-standard, dates are in mixed formats, timezones matter, or you want a preview before committing โ€” the import itself can't be undone.

Keep reading