About The iCalendar Validator
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.
Misc. bug fixes
Added check to verify DTEND date does not occur before DTSTART date
Added check to verify DTSTART and DTEND have the same value types (can't mix date and date-time types)
Added warning for domain names in UID property as per RFC 7986 specification
Fixed bug when checking TZID in DTSTART or DTEND against TZID defined in VTIMEZONE
Added check for deprecated features as described in Appendix A.3.
Modified check for UID uniquess added in version 1.8 to not check for uniqueness if RECURRENCE-ID item is present.
Added syntax check for RECUR property
Added check for UID uniqueness
Validator now ignores byte order mark at the beginning of the file (can appear in some iCalendar URLs)
Validator now checks specifically for iCalendar version number 2.0 and generates a warning if not at that level
Removed beta designation
Added JSON permalink option to format errors and warnings in JSON format for processing by other programs.
Misc. bug fixes
Misc. bug fixes
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.
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
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
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
Fixed issue with date-time check when date-time ended with "Z"
Fixed VFREEBUSY check
STATUS check now works with VTODO and VJOURNAL elements
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
Added property checks for VALARM elements
Added totals for events, time zones, journals, to-do's and free/busy items.