---
title: "CSV to ICS"
description: "Turn 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."
url: https://findutils.com/convert/csv-to-ics/
category: convert
---

# CSV to ICS

Turn 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.

**Use this tool:** [CSV to ICS](https://findutils.com/convert/csv-to-ics/)

## Programmatic access

- REST id `csv-to-ics`: POST https://api.findutils.com/api/tools/csv-to-ics/execute (reference: https://findutils.com/api/csv-to-ics/)
- MCP tool `csv_to_ics` on https://mcp.findutils.com (reference: https://findutils.com/mcp/csv-to-ics/)

## Why Use Our CSV to ICS Converter?

The events already exist in a spreadsheet: a class schedule, a shift roster, a content calendar, a season of matches. The slow path is to create them one by one in the calendar app, clicking through a form forty times for forty rows. The fast path is one import. Google Calendar can read some CSVs directly, but Apple Calendar wants an .ics, Outlook wants an .ics, and any calendar you hand to somebody else wants an .ics. This page builds that file from the rows in your browser, matching the columns by name so a Google or Outlook export maps with no configuration, and listing every row it could not use instead of dropping it in silence.

## Frequently Asked Questions

### Which column names does the tool recognize?

Title: Subject, Title, Summary, Event or Name. Start: Start Date, Start, Date or Begin. Start time: Start Time or Time. End: End Date, End, Until or To. End time: End Time. All day: All Day Event or All Day. Description: Description, Notes, Details or Body. Location: Location, Place, Where or Venue. Also Private, UID, URL, Categories and Time Zone. Matching ignores case, spaces and punctuation. If the header uses other names, the column map lets you pick each column.

### Do I need an end time for every event?

No. A timed row with no end gets the default length, 60 minutes unless you change it. An all-day row with no end date is a one-day event. If the end is before the start, the tool writes a note for that row and uses the default length instead of an impossible event.

### How are all-day events handled?

A row is all-day when its All Day Event column is true, yes or 1, or when the start has no time at all. It is written with DTSTART;VALUE=DATE and an end of the day after the last day, which is how the format stores an all-day span. In the sheet you write the last day; the tool adds the day.

### Is 03/04/2026 March 4 or April 3?

March 4 by default, because Google Calendar and Outlook exports are month-first. If your sheet is day-first, set the date order to DD/MM/YYYY. The tool counts every date that could be read either way and shows the count under the output, so you know whether the choice matters for your file. Dates such as 2026-09-03, 3 Sep 2026 or 04.09.2026 are never ambiguous.

### What does the time zone setting do?

With no zone, times are floating: a 09:30 event shows at 09:30 in whatever zone the importing calendar uses, which is what most people want for a local schedule. With a zone such as Europe/Istanbul, every timed event is stamped with it as a TZID and shows at 09:30 Istanbul time everywhere. UTC writes a Z suffix. A Time Zone column in the sheet overrides the setting for that row.

### Can I import the file into Google Calendar, Apple Calendar and Outlook?

Yes. Google Calendar: Settings > Import & export > Import, choose the file and the target calendar. Apple Calendar: File > Import, or double-click the file. Outlook desktop: File > Open & Export > Import/Export > Import an iCalendar file. Outlook on the web: Add calendar > Upload from file. Google Calendar can also import a CSV with its own header directly, which the ICS to CSV tool writes in its Google / Outlook layout.

### Will importing the same CSV twice create duplicates?

Not in calendars that honour the UID, which Google Calendar, Apple Calendar and Outlook do. Each event's UID is derived from its title, times and location plus its row number, so the same row produces the same UID on every run and the calendar updates the event instead of adding a copy. If your sheet has a UID column, that value is used instead.

### Can it create repeating events?

No. One row is one event, and the tool does not guess a recurrence rule from words like weekly in a cell. For a repeating event, write one row per occurrence, which a spreadsheet fills down in a second, or import a single event and set the repeat in the calendar app. The ICS to CSV tool carries existing rules through as text.

### Is my spreadsheet uploaded anywhere?

No. The CSV is parsed and the .ics is built in your browser, and no request carries the rows. A roster is a list of people and where they will be, and it stays on your machine. The same converter is on the FindUtils API as csv_to_ics for scripted use.

### Why was a row skipped?

The notes under the output name each skipped row by its row number, counted with the header as row 1, and say why: no title, no start date, or a start that could not be read as a date. Empty rows are counted separately and are not an error. Fix the cell in the sheet and paste again; every other row is still in the file.

### The .ics I built is too large for my calendar to import. What now?

Importers differ in how much they accept in one file. Run the file through the Split ICS tool, pick a chunk size, and import the parts one by one; each part is a complete calendar with the time zones its events need. Going the other way, the Merge ICS tool combines several exports into one file before an import or an archive.

## Related Tools

- [ICS to CSV](https://findutils.com/convert/ics-to-csv/)
- [Merge ICS](https://findutils.com/convert/merge-ics/)
- [Split ICS](https://findutils.com/convert/split-ics/)
- [ICS to JSON](https://findutils.com/convert/ics-to-json/)
- [CSV Viewer](https://findutils.com/convert/csv-viewer/)
- [CSV to Excel](https://findutils.com/convert/csv-to-excel/)
- [Time Difference Calculator](https://findutils.com/calculate/time-difference-calculator/)
- [Date Difference Calculator](https://findutils.com/calculate/date-difference-calculator/)
- [CSV to Bookmarks HTML](https://findutils.com/convert/csv-to-bookmarks-html/)
