RFC 5545
Into their diary, before they forget.
An event code holds an iCalendar entry — title, start, end, place. Scanning it offers to add the event to the phone's calendar, which is a far better outcome than a date on a poster.
live example — scannable
Payload format
iCalendar VEVENT, done properly
The payload is a VEVENT wrapped in a VCALENDAR. RFC 5545 requires both UID and DTSTAMP; plenty of generators omit them, and some calendar clients refuse the import outright when they are missing. We always include both.
BEGIN:VEVENT
SUMMARY:Diwali Mela
DTSTART:20261108T170000Z
END:VEVENT- UID
- A stable identifier. Required, and derived from the event so re-adding does not duplicate.
- DTSTAMP
- When the entry was created. Required by the spec.
- DTSTART / DTEND
- Start and end in UTC. An end before the start is rejected.
- SUMMARY
- The event title as it appears in the calendar.
- LOCATION
- Optional place, which most calendar apps turn into a map link.
How to make one
Title, start, and the rest
- 01
Name the event
What someone should see in their calendar a month from now.
- 02
Set start and end
Times are converted to UTC so they land correctly across time zones.
- 03
Add the place
Most calendar apps make the location tappable for directions.
Where it earns its keep
Where an event code works
- A gig or festival poster, so the date survives the walk home.
- A conference badge or programme, one code per session.
- A community noticeboard for a recurring meeting.
- A wedding invitation, with the ceremony already timed.
Questions
Event QR codes, answered
Why do some event codes fail to import?
Usually a missing UID or DTSTAMP. Both are required by RFC 5545, and some calendar clients reject the whole entry without them. We always emit both.
How are time zones handled?
Times are converted to UTC and marked with a trailing Z. The calendar app then displays them in the reader's local time, which is what you want for a public event.
Can I encode a repeating event?
Not in this version. Recurrence rules are supported by the format but add real complexity to both the form and the payload size.
Does adding it invite anyone?
No. The code creates a calendar entry on the scanner's own device. No invitations are sent and nobody is notified.