There are a several iCalendar validators available on the web, so why did we develop this one?  First, we wanted to develop a fresh-looking application using modern web technologies that rivaled HTML validators available on the web. We also wanted to validate against the latest iCalendar specification, RFC 5545, and to leverage our iCalendar parsing code from the open source program, Zap Calendar.  We believe we have achieved these goals and feel we have the best iCalendar validator available today on the web.  Some of the features in our validator include:

  • Validate by URL, file or text snippet,
  • Support for permalinks to post validations in e-mails and web posts
  • Link to line number in the source file where the error or warning occurred
  • Link to the referring specification section concerning the error or warning
  • JSON support for processing errors and warnings by other programs

This site includes the iCalendar specification formatted in HTML and subdivided into separate article sections.  This allows us to link to the appropriate section with the referring error or warning, a feature unique to our validator.

It is recommended that more than one validator be used when testing iCalendar feeds, since validators vary in what iCalendar specifications are validated.  Also, an error in an iCalendar feed does not necessarily indicate the feed will not work.  Many parsers are forgiving with some errors, but to eliminate the errors in a feed will provide compatibility with more iCalendar readers.

You can access the validator at http://icalendar.org/validator.html

We welcome your feedback! Let us know if you have a problem or question with the validator tool as well as any comments or suggestions.  Send us a message using the Contact Us link.

Version History

1.7 Beta
November, 2016

Added JSON permalink option to format errors and warnings in JSON format for processing by other programs.
Misc. bug fixes

1.6 Beta
September, 2016

Misc. bug fixes

1.5 Beta
September, 2016

Click to line # now works when permalink had warnings or errors
White space at end of "BEGIN" and "END" lines no longer causing mismatch errors.
MIME media type is now a case-insensative check.

1.4 Beta
July, 2016

Added time zone check against DTSTART and DTEND values that are specified in UTC
Added RECURRENCE-ID time zone checks
Fixed bad permalinks when "&" items were in URL

1.3 Beta
January, 2016

Added a permalink to the validation results page when validating a URL
Validator now checks for the proper MIME type (text/calendar) when validating an icalendar URL
Improved checking of VTIMEZONE parameters

1.2 Beta
November, 2015

RRULE check now performs a complete check of all parameters
Added checks for valid data in EXDATE, SEQUENCE, PRIORITY, DURATION, TZOFFSETFROM, and TZOFFSETTO items
TZID in DTSTART, DTEND and EXDATE is checked if it exists in VTIMEZONE items
Added line count and file size info

1.1 Beta
October, 2015

Fixed issue with date-time check when date-time ended with "Z"
Fixed VFREEBUSY check
STATUS check now works with VTODO and VJOURNAL elements

1.0 Beta
October, 2015

Added checks for valid data in TRANSP, DTSTART, DTEND, DTSTAMP, STATUS and RRULE items (RRULE check does a partial check of RRULE options in this release)
Increased file size maximum from 256KB to 512KB

0.4 Beta
September, 2015

Added property checks for VALARM elements

0.3 Beta
July, 2015

Added totals for events, time zones, journals, to-do's and free/busy items.

0.2 Beta
July, 2015

Misc. fixes

0.1 Beta
June, 2015

Initial version