Calendar interoperability
Single-event ICS files: UTC, all-day dates and safe text
An ICS file describes an event; it does not send an invitation or prove that a calendar app accepted it correctly.
Content updated: · Maintainer and corrections
Use an unambiguous event interval
Timed events in this generator use UTC with a Z suffix. Convert a local appointment to a known instant first; do not rename an ambiguous local time UTC. All-day events use dates rather than midnight timestamps.
DTEND is exclusive. An all-day event on October 7 ends on October 8; that does not make it a two-day event. Preview the receiving app after import, especially when crossing time zones or using all-day dates.
Escape content and fold bytes, not characters
iCalendar text needs escaping for backslashes, commas, semicolons and line breaks. Content-line boundaries use CRLF. The tool folds lines to at most 75 UTF-8 octets, including a continuation's leading space, without splitting a multi-byte character.
Use a fresh event identifier for a new event and inspect copied or downloaded content before sharing. This tool produces one event only: no recurrence, TZID definitions, attendees, organizer, invitation delivery or synchronization. The import app remains responsible for presentation and its own update behavior.
DTSTART;VALUE=DATE:20261007
DTEND;VALUE=DATE:20261008
→ One all-day event on October 7
DTSTART:20261007T010000Z
→ October 7, 09:00 in Asia/TaipeiData provenance