ICS file not opening? Six causes and how to fix them
When an .ics file will not import, the cause is usually one of six things. Diagnose it in a text editor, or validate and repair the file in seconds.
1. The file is HTML, not iCalendar
Many download links return a login page or an error page saved with an .ics name. Open it in a text editor: a real file starts with BEGIN:VCALENDAR.
If you see <html> or <!DOCTYPE, the download failed and you need to fetch the file again while signed in.
2. Line endings or character encoding broke
Older apps expect CRLF line endings and seven-bit encoding. A file saved with unusual encoding can fail silently on import.
Re-saving as UTF-8 and regenerating the file usually fixes it. Validation catches the rest.
3. Missing or duplicated UID
Every VEVENT needs a unique UID. Duplicate UIDs make a calendar import one event and skip the other, or overwrite both.
A regenerated file assigns fresh UIDs, which also resolves the duplicate-events problem after a second import.
4. Malformed dates
DTSTART must be a compact date or date-time: 20261027 or 20261027T090000Z. A date written as 2026-10-27 with dashes is invalid.
Relative phrases like “next Tuesday” cannot appear in a file at all — they have to be resolved to real dates before export.
5. The app cannot import, only subscribe
Some calendar apps treat .ics as a subscription feed and refuse a one-time import. Google Calendar's iOS app is the common example.
Use the web version of the calendar, or the system Calendar app on iOS, then let the events sync.
6. The calendar is read-only
Shared, subscribed, and holiday calendars usually reject imports. Create or pick a calendar you own before importing.
FAQ
- How do I check whether an .ics file is valid?
- Open it in a text editor and confirm it starts with BEGIN:VCALENDAR and has matching VEVENT blocks, or run it through a validator that checks structure and dates.
- Can a broken .ics file be repaired?
- Often yes. Rebuilding the events from the readable text is usually faster than hunting for the single malformed line.
- Why did the import add my events to the wrong time?
- A missing or incorrect TZID, or an all-day event stored as a UTC timestamp. Check the time zone declared in the file.
Convert your own schedule
3 free events, no account needed. Edit every event before you download.
Convert to calendar