.ics

ICS test files

iCalendar files with the recurrence rules, exceptions and time zones that calendar imports get wrong.

Or start from a preset

What is a ICS file?

Short answer

An ICS file is an iCalendar (RFC 5545) text file: a VCALENDAR with VEVENT entries, each with a UID, start and end, summary and optional rules. Lines end in CRLF and are folded at 75 octets.

Calendar bugs hide in recurrence and time zones: an RRULE with an EXDATE, a moved occurrence with RECURRENCE-ID, a TZID that needs its VTIMEZONE, floating times, all-day dates, and folding that must not split a UTF-8 character.

Anatomy of a ICS file

  • BEGIN:VCALENDARThe calendar, with VERSION and PRODID
  • BEGIN:VTIMEZONERules for each TZID used
  • DTSTART;TZID=…Start in a named zone, UTC (Z), floating or a DATE
  • RRULERecurrence: FREQ, COUNT, INTERVAL
  • EXDATE / RECURRENCE-IDRemoved and moved occurrences
  • BEGIN:VALARMA reminder

What you can generate

  • Up to 5,000 events
  • Europe/Stockholm, America/New_York, Asia/Tokyo, Australia/Sydney, mixed, UTC or floating time
  • Recurring events with EXDATE and RECURRENCE-ID overrides
  • All-day events, alarms, attendees and an organizer
  • Cancelled events
  • Long descriptions folded at 75 octets without splitting UTF-8
  • Unicode summaries and locations

How to make one

  1. Open the ICS generator, or start from a preset above.
  2. Set the size and switch on the edge cases you need; the preview and size estimate follow every change.
  3. Generate, then download. The file is made in your browser, and the same preset and seed always give you the same file.

Questions

The file follows RFC 5545: CRLF lines, folding at 75 octets, escaped text, a VTIMEZONE for every TZID and a UID and DTSTAMP on every event. The tests check each of these.

Each VTIMEZONE has the current daylight-saving rules for that zone, which is what calendar apps need for dates from 2026 on.

A time with no zone, such as 09:00 wherever you are. Pick Floating (no zone) to test how your app treats it.

Related formats