The iCalendar payload
The code carries a miniature .ics file: a VCALENDAR wrapper around one VEVENT with SUMMARY, DTSTART, DTEND, LOCATION and DESCRIPTION. Date-times use the compact iCalendar form — 20260820T100000 is 20 August 2026, 10:00 — and semicolons, commas, backslashes and newlines in your text are escaped so they cannot break the record.
A project meeting encodes as:
This form encodes a single, one-off event — no recurrence rules, no attendee list, no invitation emails. It is the paper flyer's calendar equivalent, not a scheduling system.
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//QR Decode//EN
BEGIN:VEVENT
SUMMARY:Project\;review
DTSTART:20260820T100000
DTEND:20260820T110000
LOCATION:Room 2\, West
DESCRIPTION:Bring notes
END:VEVENT
END:VCALENDARThe time-zone caveat to plan around
The times are encoded as floating local wall-clock values — there is no time-zone identifier in the payload. A phone in the room saves 10:00 as 10:00, which is exactly right for a local audience.
For anything with remote attendees, that ambiguity bites: 10:00 floats to whatever zone the scanning phone is set to. State the zone in the visible copy and in the DESCRIPTION field ('10:00 CET'), and verify how the preview renders on the devices your audience uses.
If most attendees are remote, reconsider the tool: a URL code pointing to a calendar page with proper zone handling may serve them better than a floating-time VEVENT.
How calendar apps respond to the scan
This is the least standardised scan behaviour on this site, and it is worth saying plainly. Some phones open a calendar preview with a save button; some offer a chooser of apps that can handle the record; some third-party scanners show the raw text.
In every mainstream case the person scanning sees the details and chooses whether to save — nothing lands on a calendar automatically. Test on an iPhone and an Android that resemble your audience's phones before printing the invitation batch.
An event code is not a ticket
The payload holds event details, full stop. There is no admission token, no RSVP capture, no attendee tracking, and scanning it proves nothing at a door. If you need ticketing, you need a ticketing platform; this code is how the date gets into calendars, not how entry gets controlled.
That cuts both ways, pleasantly: because there is no service behind it, the code costs nothing, tracks nobody, and keeps working after the event platform you didn't use has deleted its free tier.
Where a calendar code belongs
Printed invitations and save-the-date cards, meetup and open-day posters, recurring venues announcing a one-off date, conference room screens for the next session. Anywhere the reader's problem is 'I will forget this', the code moves the date from paper to calendar in one gesture.
It pairs naturally with its neighbours: a location code gets people to the venue, a vCard gives them the organiser, and a URL code carries the programme page. On a poster there is room for two codes; choose the pair by what the audience will actually do.
Get the details right — print is forever
A wrong date on a printed invitation is the most expensive typo this site can produce. Check the year, check that the end follows the start, keep the SUMMARY short since every character adds density, and put the room or address in LOCATION where calendar apps display it.
Then do the full loop once: export, scan, save the event to a real calendar, and look at the entry. Decoding the image also lets you inspect the raw fields when something renders oddly.
Frequently asked questions
Does scanning add the event to the calendar automatically?
No. Compatible phones show the event details and require a deliberate save. Some scanners only display the record as text — test with your audience's typical devices.
Can I include a location and notes?
Yes. LOCATION and DESCRIPTION are part of the payload, with punctuation escaped automatically. Keep both short: they add density to the code.
Can the event repeat weekly?
Not from this form — it encodes one non-recurring VEVENT. For a series, encode a URL to a calendar subscription or booking page instead.
Is this an event ticket?
No. It is a static calendar record with no admission token, RSVP service, or per-scan identity — everyone scans the same code and gets the same event details.
Make a calendar payload with an unambiguous time
A local event is not just a title and a date. For a workshop beginning 2026-10-14 at 18:30 and ending at 20:00 in Europe/Amsterdam, the organiser must decide whether the payload uses a UTC timestamp or a named time-zone representation that the receiving calendar understands. A QR code can decode perfectly while an imported appointment appears an hour away from the intended local time after a daylight-saving transition. Include venue, start, end and a short title; keep a visible written date, local time and contact route next to the printed code. The iCalendar standard is RFC 5545: https://www.rfc-editor.org/rfc/rfc5545 .
Run an RSVP and schedule-change test separately
Scan the final event code on two calendar applications and verify that both show the same day, start time, end time and venue. Then alter the event on the organiser's side: a static QR payload already printed on posters cannot update itself. If changes are likely, point a labelled URL QR code to a current programme page instead, while retaining a clear human-readable date. Do not encode an entry credential, attendee list or private conferencing link into a publicly photographed symbol. A calendar code is suitable for an optional appointment reminder; it does not register attendance, guarantee a seat or notify someone who scanned yesterday's poster. Keep the source VEVENT text and final scan screenshots with the event artwork so a later discrepancy can be traced to payload construction, device import behaviour or a changed schedule.
Give a changed event a new physical instruction
When time, venue or access conditions change, post a plain-language update wherever the code is displayed. A calendar QR cannot notify people who have already imported its old values. For high-change events, use a separate URL code for live instructions and reserve the VEVENT code for the stable appointment. That division makes it clear which item must be reprinted and which page can be updated.
Do not treat calendar import as attendance
A calendar app may accept an event even when the person lacks a ticket, access permission or the latest event notice. Keep registration and admission in their own clearly named routes. The event payload should be judged by whether it creates the right personal reminder, not by whether it appears to perform every part of event administration.