ICS file validator: check a calendar file for errors

Short answer: choose an .ics file or paste its text, and this page lists what is wrong with it, with line numbers, and shows the events it found. It runs in your browser: the file is not uploaded.

No account. Nothing uploaded. Free.

2. The result

    What it checks

    Problems are marked as errors (the file is wrong), warnings (it usually works but strict readers may reject it) or notes (good to know).

    Common errors and how to fix them

    MessageWhat to do
    BEGIN:VEVENT is never closedAdd the missing END:VEVENT line before END:VCALENDAR.
    DTSTART is not a valid dateWrite dates as 20261117 or 20261117T090000Z, with no dashes or colons.
    An event ends before it startsSwap or correct DTSTART and DTEND.
    No UIDAdd a UID line with a unique value, for example a random id plus a domain name.
    No DTSTAMPAdd DTSTAMP with the time the file was made, such as DTSTAMP:20261110T090000Z.
    Lines end with LF instead of CRLFMost apps still accept it. For strict readers save the file with Windows (CRLF) line endings.
    The file does not start with BEGIN:VCALENDARRemove anything before it, such as a byte-order mark or an email header.

    The structure of an ICS file

    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:-//Yotei//Free ICS maker//EN
    BEGIN:VEVENT
    UID:5b1d2c0e-7a3f-4c2b-9d51-0f6e8a1b2c3d@yotei.win
    DTSTAMP:20261110T090000Z
    DTSTART:20261117T090000Z
    DTEND:20261117T100000Z
    SUMMARY:Meeting
    LOCATION:Café Noord\, Kerkstraat 12
    END:VEVENT
    END:VCALENDAR

    Why a calendar app refuses a file

    Google Calendar and Outlook are forgiving in different ways. A file that opens in one can fail in the other, most often because of a missing UID, a date with the wrong format, an event that ends before it starts, or text with an unescaped comma or semicolon. Run the file through this page first, fix the errors it lists, and try the import again. If you need a clean file from scratch, make one with the ICS file generator.

    Privacy

    The file is read by a script in this page. It is not uploaded and not stored. The only request the page makes is an anonymous visit counter.

    Get Yotei for free

    FAQ

    How do I validate an ICS file?

    Choose the file or paste its text. The result shows errors, warnings and notes with line numbers, and a table with the events in the file.

    Why will my ICS file not import?

    The usual causes are a missing UID or DTSTART, a date in the wrong format, an event that ends before it starts, and a block that is not closed. The validator lists these.

    Does it check the full iCalendar standard?

    It checks the rules that most often break an import: structure, required fields, date formats and ordering. It does not check every optional property of RFC 5545.

    Is my calendar file private?

    Yes. It stays in your browser and is not uploaded.

    What does a floating time mean?

    A time with no Z and no time zone. It shows the same clock time wherever you open the file, which is fine for a local event and wrong for a call across time zones.

    Can it fix the file for me?

    Not automatically. It tells you what is wrong. To make a correct file, use the ICS file generator or Text to ICS.