ICS · ICAL · FILE VALIDATOR

Check whether a calendar file is actually valid

Drop in a .ics file and see exactly what's wrong with it, line by line, in plain language instead of a parser error code. Nothing is uploaded. Everything runs in your browser.

Drag your .ics file here, or click to choose one
Works with more than one file at a time. Nothing you upload leaves your browser.
Free. No account. No limit on file size or count.

What this checks for

Structure

The file wraps everything in a matched BEGIN:VCALENDAR / END:VCALENDAR block, every other BEGIN has a matching END, and each line follows the NAME:VALUE format the format requires.

Required fields

Every event has a UID and a DTSTART, and the calendar itself declares a VERSION and PRODID, all of which the spec requires even though some apps tolerate their absence.

Dates that don't add up

An end time that falls before its own start time, or a recurrence rule with an UNTIL date earlier than the event's first occurrence.

Timezone references

A TZID that isn't a standard zone name and isn't defined anywhere in the file with a VTIMEZONE block, a common cause of events showing up hours off.

Duplicate or orphaned events

Two events sharing the same UID, or a RECURRENCE-ID override that doesn't correspond to any actual recurring event in the file.

Unsupported recurrence patterns

An RRULE using a frequency outside DAILY, WEEKLY, MONTHLY, or YEARLY, which some calendar apps won't expand the way you'd expect.

Fixing what it finds

This tool points out problems, it doesn't rewrite the file for you. If it flags something you can't fix by hand in a text editor, exporting the calendar again from the original app (Google Calendar, Outlook, Apple Calendar) usually produces a cleaner file than trying to patch one that was exported incorrectly the first time.

Need the file converted to a spreadsheet instead of just checked? Try the ICS to CSV converter, which handles recurring events and timezones the same way this validator checks for them.