CSV to ICS
BetaTurn a spreadsheet of events into an .ics file that Google Calendar, Apple Calendar and Outlook import. Columns are matched by name, each row needs a title and a start, and nothing is uploaded.
- Free, no sign-up
- REST + MCP
- Updated
- Reviewed by Olgun Ozoktas
Stamped on every timed event. Leave it empty for floating times, which the importing calendar reads in its own zone. UTC writes a Z suffix.
The calendar file will appear here..
Why Use Our CSV to ICS Converter?
An .ics file is a VCALENDAR with one VEVENT per event, and each event needs a UID, a DTSTAMP, a DTSTART and a SUMMARY. This converter reads a CSV with a header row, matches the columns by name, and writes one VEVENT per row. It accepts the Google Calendar and Outlook export headers, Subject, Start Date, Start Time, End Date, End Time, All Day Event, Description, Location and Private, and short aliases such as title, start, end, notes and place. When the automatic match cannot find a title or a start column, a column map appears so you can point each field at the right column.
Times are written as stated. If you give a time zone, every timed event is stamped with it as a TZID parameter; UTC writes a Z suffix; no zone writes floating times, which the importing calendar reads in its own zone. A Time Zone column in the sheet overrides the setting per row. All-day rows are written with VALUE=DATE and the exclusive end the format requires. Text is escaped and long lines are folded at 75 characters, so the file passes strict importers.
Each event gets a stable UID derived from its title, times and location plus its row number, so importing the same CSV twice updates the events instead of duplicating them. Recurrence is not inferred from text: a row is one event, and a weekly meeting needs one row per week or a rule added in the calendar afterwards. Everything runs in the browser, and the spreadsheet is never uploaded.
How it compares
Google Calendar can import a CSV with its own header directly, and that is the right path when the target is Google. Apple Calendar, Outlook, shared subscriptions and any handoff to another person need an .ics, which this page produces from the same sheet. Server-side converters upload the roster; this one keeps it in the tab and tells you, row by row, what it could not use.
CSV to Calendar Tips
- Every row needs a title and a start date. A row missing either is skipped and named by its row number under the output, so you can fix the sheet and paste it again.
- A row with no time, or All Day Event set to true, becomes an all-day event. The end date in the sheet is the last day; the file stores the day after, as the format requires.
- Dates like 03/04/2026 are read month-first, which is what Google and Outlook exports use. If your sheet is day-first, pick DD/MM/YYYY; the tool counts the ambiguous dates so you know when it matters. ISO dates such as 2026-09-03 are never ambiguous.
- A timed row with no end gets the default length, 60 minutes unless you change it. A start cell such as 2026-09-03 09:30 is split into date and time when there is no separate time column.
- The time zone is stamped as a TZID that Google Calendar and Apple Calendar read directly. Older Outlook desktop versions may treat a TZID with no embedded zone definition as local time; if that matters, use UTC or floating times.