Standards/ical-event-qr
iCal Event QR
Overview
iCal Event QR is the practice of encoding an iCalendar calendar event inside a standard qr-code symbol so that scanning the code lets a phone create a calendar entry — title, start, end and location — in one tap. The payload is an iCalendar object containing a VEVENT component, delimited by BEGIN:VEVENT and END:VEVENT [1].
iCalendar itself is the IETF standard for calendaring data, defined by RFC 5545 ("Internet Calendaring and Scheduling Core Object Specification"), published in September 2009, which obsoletes the earlier RFC 2445 [3] [4]. The QR carrier is a convention documented by ZXing, not part of the RFC [1].
History
iCalendar grew out of the vCalendar format created by the Internet Mail Consortium (IMC), which carried the .vcs extension [4]. The IETF first standardized iCalendar as RFC 2445 in 1998; RFC 5545 replaced RFC 2445 in September 2009 and remains the defining standard [3] [4]. The text/calendar MIME type and the .ics filename extension are used for iCalendar data [4]. ZXing documents embedding a single event (VEVENT) in a QR code as one of its calendar formats [1].
Technical specification
ZXing's example payload is [1]:
BEGIN:VEVENT
SUMMARY:Summer+Vacation!
DTSTART:20180601T070000Z
DTEND:20180831T070000Z
END:VEVENT
A VEVENT is "a grouping of component properties ... that represents a scheduled amount of time on a calendar," and may itself contain VALARM components [3]. Key event properties include SUMMARY (title), DTSTART and DTEND (timing), plus LOCATION, DESCRIPTION and UID [3] [4]. A canonical RFC 5545 event uses, e.g., SUMMARY:Bastille Day Party, DTSTART:19970714T170000Z, DTEND:19970715T040000Z [4].
Date-time format. Timestamps follow an ISO-8601-style form such as 20180601T070000Z, where a trailing Z denotes UTC [4].
Line folding. Lines should be limited to 75 octets; longer values continue on the next line, which must begin with a space or tab [4].
Text escaping. In TEXT values, actual line feeds are encoded as a backslash followed by n or N, and the special characters comma, semicolon and backslash are backslash-escaped [4].
A strictly conformant iCalendar object wraps the VEVENT inside BEGIN:VCALENDAR / END:VCALENDAR with a VERSION and PRODID; ZXing's compact QR convention shows the bare VEVENT block, and many scanners accept it directly [1] [4].
Use cases
- Event flyers and posters. A scan adds the date, time, title and venue of a concert, conference or meetup to the user's calendar without manual entry [1].
- Camera-native "add event." Both iOS and Android trigger a system-level calendar-event action when a
VEVENT/iCalendar payload is scanned [6]. - Invitations and tickets. Reminders for appointments, classes and bookings can be distributed as a single scannable code [1].
Implementations
| Project | Lang | Stars | Last active | Notes |
|---|---|---|---|---|
| zxing/zxing | Java | ~34k | 2025 | Reference decoder; parses the VEVENT/iCalendar QR convention into a calendar result [1] [5] |
| iOS / Android cameras (system) | — | — | 2025 | Trigger a "calendar event" action for iCalendar QR payloads [6] |
Comparison
- iCal Event QR vs a plain text/URL QR. A
VEVENTpayload populates the native calendar fields (title, start, end, location) directly, whereas a URL only links to a page that may or may not offer an "add to calendar" flow [1] [4]. - Bare
VEVENTvs fullVCALENDAR. ZXing's compact convention omits the outerVCALENDARwrapper to save QR characters; RFC 5545 conformance requires the wrapper, so very strict parsers may need it [1] [4].
Fun facts
- The format that fills your phone's calendar from a poster traces back to the same 1990s versit / Internet Mail Consortium lineage that produced vCard — vCalendar was the IMC ancestor of today's RFC 5545 iCalendar [4].
Status
Active. RFC 5545 is the current iCalendar standard, the text/calendar MIME type and .ics extension are in universal use, and scanning a VEVENT QR triggers an "add event" action on both major mobile platforms [3] [4] [6].
Sources
1 Barcode Contents — ZXing Wiki 3 RFC 5545: Internet Calendaring and Scheduling Core Object Specification (iCalendar) — IETF / RFC Editor, 2009 4 iCalendar — Wikipedia 5 zxing/zxing — ZXing project, GitHub 6 QR code mobile OS breakdown: iOS vs Android in 2026 — QRCodeKit, 2026
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal