creatorvalet

How to import an .ics file into Google Calendar

Google Calendar will not open a downloaded .ics file. The import lives in Settings, the mobile apps have none at all, and duplicates are preventable.

Updated 2026-08-06

You downloaded the file, you double-clicked it, and nothing useful happened. On an iPhone, a Mac or Outlook for Windows, that click would have opened the event and offered to save it. Google Calendar did none of it, and more clicking will not help.

The reason explains everything else on this page. A double-click asks your operating system which installed program handles that kind of file. Google Calendar is not an installed program — it is a page in a browser tab, so nothing on your machine associates a .ics with it. Google Calendar imports an .ics file only when you hand the file across deliberately, from a screen built for that job. Learn where that screen is and you never look this up again.

If the contents of the file are the puzzle rather than the import, what an .ics file is takes one apart line by line.

Import an .ics to Google Calendar on a computer

The only route that exists, and it takes under a minute.

  1. Open Google Calendar in a browser, signed in to the account that should hold the event.
  2. Click the gear icon at the top right and choose Settings.
  3. In the list down the left side, pick Import & export.
  4. Use the button under Import to choose the file from your computer, or drag it onto that area.
  5. Below it sits a menu of your calendars. Pick the one that should receive the events — see the next section, because this is the easy thing to get wrong.
  6. Click Import.

Google works through the file and confirms how many events it added. A count lower than expected means it skipped entries, and re-importing will not conjure them up.

How to add an .ics to Google Calendar on a phone

Here is the answer nobody wants: the Google Calendar apps for Android and iOS have no import function. Not buried in a submenu, not behind a setting. Tapping an attached .ics on Android typically shows a preview and no way to keep it.

Two things work. The first is to open a computer; the desktop site in a phone browser is no substitute, since that screen wants a pointer and a file picker.

The second works only on iPhone: let Apple Calendar receive the file. Tap it, and iOS offers to add the event to a calendar you choose. If your Google account is already connected in the iPhone’s settings, one of those choices is a Google calendar, and anything added there syncs upward within moments. Apple’s calendar is acting as the doorway Google never built.

Which calendar the events land in

The menu in step 5 lists every calendar you can write to, and your pick is where the events live. Choose a shared one — a team schedule, a family calendar, a room — and everybody with access sees what you added. A ninety-item program dropped there is ninety entries that appeared in your colleagues’ week without warning.

There is no bulk move afterwards; each event has to be dragged across by hand. So create an empty calendar first and import into that. Wrong result: delete the calendar in one action. Right result: keep it — a calendar you can switch off beats a hundred entries mixed into your own week.

Importing a whole schedule at once

One .ics can describe four hundred events as easily as one, and they arrive in a single pass — no per-event step, no need to split the file.

The same screen accepts a .csv, but on Google’s terms: the sheet has to use the column headings Google expects, beginning with Subject and Start Date. Your own headings get it rejected, so converting the sheet to a .ics is usually less work than renaming columns to somebody else’s spec.

Subscribing is not importing

Elsewhere in the same settings area, Google offers to add a calendar from a URL. It looks like the same errand and behaves nothing like it — confusing the two is the most common disappointment here.

Import takes a one-time copy. The events become yours, you can edit them, and if the source changes tomorrow your copy does not.

From a URL subscribes to a feed. The events are not yours, you cannot edit them, and Google re-reads the address on its own timetable — hours, often most of a day, never on demand. So a fixture list corrected this morning may not reach you until tonight.

Pick by what you want next month: a frozen copy, or one that maintains itself. Wanting the second and importing instead means no updates at all, and nothing on screen says so.

When it does not go cleanly

The same event twice. Every event carries a permanent identifier, and Google honors it: re-import the same file and the entry is recognized rather than doubled. What breaks that is a generator inventing a fresh identifier on each download — a corrected invitation is then a stranger to the original and lands beside it. There is no bulk undo; delete the extras by hand.

Everything is an hour or seven out. The file recorded times with no zone attached, so your calendar read them as local. Repair the file, not the entries: times written in UTC land correctly everywhere.

An all-day event finishes a day late. In this format the end date is the day the event stops before, so a single day on the 12th ends on the 13th. Hand-written files are routinely off by one. Fix the date and import again.

Google refuses the file. Open it in a text editor. The first line has to read BEGIN:VCALENDAR. HTML means you saved the download page instead of the file, and a .txt or .ical extension is worth renaming to .ics before anything else.

If you are the one publishing the event

Everything above is what you hand visitors when your event page offers a download and nothing else. The iPhone and Outlook half are fine; the Google half ends up on articles like this one, and most give up partway down.

The fix costs one extra link: publish a pre-filled Google Calendar link beside the file, so a click opens a new event with title, time and location already entered. The ICS file generator writes both from the same details, plus the markup to paste into your page. If the schedule already lives in spreadsheet rows, Excel to Calendar turns them into one combined file and one file per row, so every session can carry its own button.