How to Convert Excel or CSV to ICS for Bulk Calendar Imports
Step-by-step instructions for turning a spreadsheet of events into an iCalendar (.ics) file you can import into Google Calendar, Outlook, or Apple Calendar — including which columns matter and how to handle dates, times, and timezones.
Spreadsheets are the natural place to plan dozens or hundreds of events: class schedules, conference agendas, training programs, work rotations. But once the planning is done, you need to push those events into a calendar app. Typing each one by hand is slow and error-prone. The fix is converting the spreadsheet to ICS, the universal calendar format, and importing the result. This guide walks through the workflow end-to-end, including the column structure that works best and the common gotchas around dates and timezones.
The fastest workflow
- Open your Excel or Google Sheets file.
- Save (or download) as CSV UTF-8 — never plain CSV, because UTF-8 preserves accents and emoji.
- Drop the .csv file into our CSV to ICS converter.
- The .ics file downloads automatically. Open it on your phone or import it in Google Calendar / Outlook / Apple Calendar.
Which columns does the converter expect?
The converter detects column names automatically, so most spreadsheets work without renaming anything. The required columns are Subject (or Title) and Start Date. Optional but recommended columns are Start Time, End Date, End Time, All Day Event, Description, and Location. Spanish equivalents (Asunto, Fecha de inicio, Hora de inicio, Ubicación, Descripción) also work.
Example minimal CSV
Subject,Start Date,Start Time,End Time,Location\nKickoff meeting,2026-06-01,09:00,10:00,HQ Room 4\nProduct demo,2026-06-03,14:30,15:30,Zoom
Date and time formats that work
ISO format (YYYY-MM-DD) is preferred because it is unambiguous. American (MM/DD/YYYY) and European (DD/MM/YYYY) layouts are both detected, but if your spreadsheet might be opened in different locales, lock the format to ISO. Times can be 24-hour (HH:MM) or 12-hour with AM/PM suffix.
How to handle all-day events
Leave the Start Time column empty for that row, or add an "All Day Event" column with True/Yes/1. The converter generates the ICS event with the VALUE=DATE syntax, which all major calendar apps recognize.
Timezones, the eternal headache
Times are written in UTC inside the .ics, which means each calendar app re-renders them in the importer's local timezone. For most use cases that is what you want. If you need a specific TZID per event (e.g., a roster published for a specific city), open the .ics in a text editor after conversion and add a TZID parameter to DTSTART/DTEND, or run the file through Fix / Clean ICS to normalize.
Importing the .ics file
- Google Calendar: gear icon → Settings → Import & Export → Select file from your computer → choose calendar → Import.
- Outlook desktop: File → Open & Export → Import/Export → Import an iCalendar file. On macOS, double-click the .ics file.
- Apple Calendar (macOS/iOS): Drag the .ics onto the Calendar app icon, or open the file in Mail.
When to keep the spreadsheet as the source of truth
For long-running schedules that change often (school timetables, on-call rotations), keep editing the spreadsheet and re-export to ICS each time. Importing the new ICS will update existing events as long as the UIDs match. The converter generates fresh UIDs by default, so for an updateable workflow, add a UID column to your CSV and the converter will preserve those identifiers in the output.
Bottom line
CSV-to-ICS conversion turns hours of manual data entry into one click. Save your spreadsheet as CSV UTF-8, drop it into the converter, and import the resulting .ics into any calendar app. Done.