Validate an iCalendar file before importing it
ICS files use the iCalendar format defined by RFC 5545. A calendar stream normally starts with BEGIN:VCALENDAR, declares VERSION:2.0 and a PRODID, contains components such as VEVENT, and ends with the matching END:VCALENDAR.
This validator unfolds continued content lines, checks component nesting, counts events and time zones, and reviews common required properties. For events it checks UID, DTSTAMP, and the usual DTSTART requirement. It also catches obvious date-time syntax problems, TZID combined with a UTC Z suffix, and recurrence rules without FREQ.
Minimal event example
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Inc//Calendar 1.0//EN
BEGIN:VEVENT
UID:meeting-42@example.com
DTSTAMP:20260808T100000Z
DTSTART:20260810T130000Z
DTEND:20260810T140000Z
SUMMARY:Project review
END:VEVENT
END:VCALENDAR
The standard uses CRLF line endings. Long content lines should be folded by inserting CRLF followed by one space or tab, and consumers unfold that sequence before parsing the property.
Scope and compatibility
iCalendar is large and extensible. This is a practical structural validator, not a complete implementation of every registered property, parameter, recurrence expansion, scheduling method, or vendor extension. It does not load referenced time zones, fetch calendar URLs, verify organizer identities, or simulate imports into Google Calendar, Apple Calendar, or Outlook.
A file can pass these checks and still behave differently across products. Test important output in the calendar applications you support. For creating a simple event, use the ICS Calendar File Generator. To build and preview recurrence rules, use the RRULE Generator, and use the World Clock when checking offsets.
File privacy and limits
Uploaded and pasted calendar content stays in the browser. The tool accepts up to 2 MB to avoid locking the page on unusually large feeds. Calendar descriptions and attendee data are never added to analytics.
The core format is specified by RFC 5545, with later extensions maintained through the IANA iCalendar registries.