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

2.22
February 2026

Fixed array_change_key_case() error

1.19
March 2024

Fixed bug when looking at iCalendar feed's "Content-Type". Some feeds would show content-type of "" instead of actual content type.

1.18
February 2024

"agent_type" is now sent when validating by URL and checking for the MIME content type

1.17
February 2024

Added check for lines that don't include a colon (":")
Fixed an error that occurred in the validation when a bad time was entered within a date-time field

1.16
January 2024

Added check for missing END:VCALENDAR and other END: components at end of file (i.e. END:VEVENT).

1.15
April 2023

Added check that DTEND is not earlier than DTSTART
Added check for additional duplicate properties
Fixed issue with duplicate UID check, now recognizes duplicates when using RECURRENCE-ID

1.14
February 2020

Added check for valid date and time values
Added check for DQUOTE in property parameters

1.13
August 2018

Misc. bug fixes

1.12
August 2018

Misc. bug fixes

1.11
July 2018

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

1.10
April 2018

Security fix

1.9
April 2018

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

1.8
December 2017

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

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

 

Awas Melewatkan Cuan! Rahasia Pola Black Scatter untuk Pecahkan Rekor Kemenangan Hari IniCara Gila! Tingkatkan Akurasi Taruhan Roulette Lewat Teknik Fibonacci Anti-RugiCuan Meledak! Ini Dia Pola Scatter Mahjong Ways 2 yang Paling Nge-Hits Saat IniCuci Mata dan Kantong! Aksi Pemain Sukses Raup Cuan di Black ScatterDari Patah Hati Jadi Heart Attack! Kisah Pemain Sukses di Baccarat dengan Trik SederhanaGak Nyangka! Rumus Sederhana Ini Bikin Peluang Menang Parlay Naik 80%Hati-Hati! Kesalahan Kecil di Baccarat Bisa Bikin Anda Kehilangan Jackpot Besar!Jangan Lewatkan! 3 Sinyal Kemenangan di Mahjong Wins yang Jarang Diketahui Pemain LamaMahjong Wins 2 Dari Pemula Jadi Sultan! Ini 4 Jurus Jitu yang Wajib DikuasaiMenang Terus! Strategi Taruhan Roulette yang Bikin Dealer Sampai Geleng-GelengMode Gila! Simak Trik Menguasai Freespin di Black Scatter Tanpa Modal BesarNgaku Pecinta Gates of Olympus? Wajib Baca 5 Kesalahan Fatal Ini Sebelum Spin!Parlay Panas! Kombinasi Tim Ini Dijamin Bikin Dompet Mbledos Terbukti!Perhatikan Jam Main! Ini Waktu Terbaik untuk Menang di Gates of OlympusPeringatan Keras! Jangan Mainkan Mahjong Ways 2 Sebelum Baca 7 Petunjuk Ini!Roulette Bukan Sekadar Tebak Angka! Strategi Jitu Ini Bikin Meja BergetarScroll Berhenti! Spill Pola Scatter Mahjong Wins dari Grup Telegram Paling DipercayaSensasi Maxwin! Bocoran Pola Scatter Mahjong Ways 2 yang Bikin Saldo Nambah Nol!Turun Gunung! Eks Member Kasino Bagikan Pola Andalan di Mahjong Ways 2Viral! Pemain Ini Raup Cuan Besar di Gates of Olympus Hanya Modal 20 Ribu, Caranya?Catat Tanggalnya! Peringatan Kemenangan Besar di Black Scatter Akan Segera TerjadiCurhat Pro Player Cara Saya Konsisten Cuan dari Parlay Tanpa RibetHati-Hati Scatter Palsu! Kenali Perbedaan Scatter Asli di Mahjong WaysIni Dia! Tanda-Tanda Mesin Mahjong Wins 2 Siap Memberikan JackpotModal Uang Kembalian? Coba Trik Ini di Baccarat, Bisa Jadi Cuan Besar!Sering Kena Scatter? Itu Tanda Anda Salah Main, Coba Simak Strategi Gates of Olympus Ini!Stop! Jangan Spin Sebelum Tau Pola Scatter Gates of Olympus yang TerupdateTakut Kalah? Pakai Saja Trik Anti-Panas di Mahjong Wins 2, Dijaman Aman!Tingkatkan Level! Cara Jago Main Roulette Ala Pro Player Dalam Waktu SingkatTips Sakti! Menaklukkan Meja Roulette Hanya dengan 3 Putaran Awal
Beda Tipis Beda Jackpot! Perhatikan 5 Perbedaan Pola Scatter Ini di Mahjong WaysKesempatan Emas! Mainkan Gates of Olympus Hari Ini dengan Pola Gacor Versi KamiTarget Kemenangan? Terapkan Rumus 30 Menit di Baccarat, Auto Profit!Gercep! Cara Membaca Nafas Mesin Mahjong Ways 2 untuk Mendapatkan ScatterInfo Penting! Update Pola Kemenangan Parlay Liga Top Eropa Pekan IniSiapa Bilang Susah? Buktikan Sendiri Kekuatan Pola Scatter Mahjong Wins Ini!Sikat Abis! 5 Teknik Melipatgandakan Modal di Roulette yang Sedang TrenDijamin Anti Boncos! Panduan Lengkap Bermain Black Scatter dengan Modal KecilSpesial Akhir Pekan! Pola Gacor Gates of Olympus yang Siap Mengguncang HP AndaPahami Ini! Rahasia Kartu Ketiga di Baccarat yang Sering Bikin Pemain KayaBaca Dulu, Main Kemudian! 7 Penyebab Utama Kekalahan di Mahjong Ways 2Langsung Praktek! Formula Jitu Memanfaatkan Free Spin di Black ScatterRevolusi Main! Bukan Cuma Hoki, Ini Data yang Bikin Anda Menang di RouletteGacor Parah! Pola Scatter Mahjong Ways 2 yang Bikin Warganet Ramai BahasSikat Pola Turbo di Gates of Olympus, Dijamin Kemenangan Lebih Cepat!Jangan Sampai Ketinggalan! Bocoran Skill Pengecualian di Permainan Mahjong WinsParlay 2 Tim vs 5 Tim? Ini Dia Pilihan Cerdas yang Bikin Cuan MaksimalMain Mahjong Ways 2 di HP? Setting Ini Wajib Diubah Agar Scatter Sering Muncul!Hari Ini Juga! Buktikan Sendiri Pola Black Scatter yang Paling Lembut di KantongInfo Viral! Deretan Kejutan Saat Bermain Baccarat yang Sering TerlewatkanMahjong Ways 2 Panduan Lengkap Membaca Pola Scatter untuk PemulaStrategi Dasar Bermain Mahjong Wins Fokus pada Manajemen TaruhanGates of Olympus Demystified Memahami Mekanisme Pengganda dan FreespinBlack Scatter Tips Mengoptimalkan Putaran Gratis untuk Kemenangan MaksimalParlay 101 Cara Cerdas Menggabungkan Taruhan Tanpa Mengorbankan PeluangBaccarat untuk Pemula Memahami Aturan Dasar dan Istilah PentingRoulette Mengenal Jenis Taruhan dan Peluang Matematis di DalamnyaTips Memilih Agen Terpercaya untuk Main Mahjong Ways 2 di IndonesiaMahjong Wins Perbedaan Pola Scatter di Versi Lama dan TerbaruGates of Olympus Waktu Terbaik untuk Memicu Fitur Anti Lag
toto togel
bandar togel