Turn a Google Sheet into calendar events

There's no button that takes a Google Sheet into Google Calendar, and the add-ons that bridge the gap generally ask for access to your Drive and calendar. Koyomi's route needs none of that: File → Download in Sheets, convert here, import the .ics.

A student with a semester's syllabus in a Sheet — assignment, course, due date, maybe a time — downloads it as CSV (current sheet) or as .xlsx, drops it here, and gets one event per deadline. Dates typed however the professor wrote them ("Sep 14", 14/09/2026, 2026-09-14) are recognized, and day-first or month-first is inferred, with an override if the guess is wrong.

Because the .ics carries stable event IDs, updating the Sheet and repeating the download-convert-import loop updates the existing events in Google Calendar instead of duplicating them — useful when due dates move. Import steps for Google Calendar are below.

How to turn a Google Sheet into calendar events

  1. Tidy the sheet, not the calendar. One row per deadline, headers in row 1. Task, Date and Time are recognized on their own; a Course column is best mapped to Description after loading so the course name appears in the event body under the assignment title.
  2. Check the locale before downloading. File → Settings → Locale controls how Sheets writes dates in a CSV: a US locale gives 9/14/2026, a UK one 14/09/2026. Either is fine. What matters is that every row comes out the same way, which they will if the cells are real dates.
  3. Download as CSV or as Excel. File → Download → Comma Separated Values (.csv) exports the current tab only. File → Download → Microsoft Excel (.xlsx) exports every tab and keeps date cells as dates; choose it if you have one tab per course or the sheet's date formatting isn't yours to change.
  4. Convert in the university's zone. A syllabus written in the campus zone should be converted with that zone selected, not the zone of wherever you happen to be over the break.
  5. Import into a calendar made for the semester. Create "Fall 2026" in Google Calendar first and import into it, so the whole semester can be hidden or deleted in one step when it's over.

Why there's no built-in Sheets to Calendar button

Google Sheets and Google Calendar don't share a data model. The bridge Google offers is Apps Script, which means writing a script and authorizing it against your calendar, or installing a Marketplace add-on that asks for the same permissions. Both work, and both hand write access to your calendar to a script or a third party.

The file route trades automation for containment. Download, convert, import touches nothing in your Google account beyond the import itself, and it works on a Sheet someone else owns that you can only view.

For a sheet that changes daily, a script or add-on is the better fit. For a syllabus, a season schedule or a one-off event list, the file route is simpler and leaves no standing permission behind.

Dates in Sheets: text versus values

Sheets stores a date as a number and displays it according to the cell format and the spreadsheet locale, much like Excel. When it exports CSV, it writes the displayed text. A cell formatted as "Sep 14" exports as "Sep 14" with no year, which can't be placed on a calendar; format the column with a full date (Format → Number → Date) before downloading.

Dates pasted from email or typed with a leading apostrophe are often text, and Sheets left-aligns them as a hint. Those export as typed and are parsed as text, so "14/09/2026" and "Sep 14, 2026" are fine, but "next Tuesday" is not.

Downloading as .xlsx preserves date cells as dates regardless of format, so the missing-year problem doesn't arise. That's the main reason to prefer .xlsx when you don't control the sheet's formatting.

After you download the .ics

Google Calendar

  1. Open calendar.google.com on a computer (the mobile apps can't import files).
  2. Click the gear → Settings → Import & export.
  3. Select the .ics file, choose which calendar to add the events to, and click Import.

Read the guide

Frequently asked questions

Should I download the Sheet as CSV or Excel?
Either works. CSV is fine for a single sheet. Choose Excel (.xlsx) if you want to keep several tabs in one file and pick the tab here, or if your dates are real date cells you'd rather not have reformatted.
Does this stay in sync with the Sheet afterwards?
No. It's a one-way conversion: the .ics reflects the Sheet at the moment you downloaded it. To push changes, download and convert again; re-importing updates the existing events rather than duplicating them in most calendar apps.
Can I import the .ics into Google Calendar from my phone?
Not through the app; Google Calendar only imports files on the website. Do it once from a computer, and the events appear on your phone through normal sync.
Is there a Google Sheets add-on?
No, deliberately. Koyomi never asks for access to your Google account. Download the sheet, convert it in your browser, import the file. Nothing leaves your machine.
Can I paste the sheet instead of downloading it?
No, Koyomi takes a file. Downloading a CSV is one menu action and needs no change to the sheet's sharing settings; viewers can download too unless the owner has turned that off.
The syllabus says "Week 3" instead of dates. Can that convert?
Not directly. Add a Date column: type the first Monday, type the next one a week later, select both cells and drag the fill handle down to generate the rest. Then download and convert.
Does downloading as CSV lose anything I need?
Formatting and other tabs, which don't matter here, and hyperlinks, which do: a linked cell exports as its display text, not the URL. If you want a link on each event, put the URL itself in a column.
Is my spreadsheet uploaded anywhere?
No. Parsing and the .ics file are produced entirely in your browser — the file never leaves your device. That's also why there is no size limit, no queue and no account.
Is this really free?
Yes. Every input format, every option, no sign-up, and nothing added to the calendar file.
Does it support recurring events?
Not yet. Each row becomes one single event. For a weekly class or shift, put one row per occurrence — filling a date column down in a spreadsheet takes seconds.