QR Code Generator

Turn 'save the date' into an actual calendar entry

Scanning this code offers to add your event — title, place, start and end — straight into the phone's calendar. No manual entry, no guest typing the wrong date, no forgetting because it never made it out of the flyer.

The quiet failure mode with event codes is time. A calendar entry without timezone information is read in the scanner's local time, so a guest travelling from another region can see your 7 pm start as 4 pm. Knowing how the time is interpreted is the difference between a full room and confused arrivals.

Timezones and the hour that goes missing

The calendar format can store a plain local time or a time anchored to a timezone. A plain local time is safest for a physical event: everyone reads '19:00' as 7 pm wherever they scan, which is what you want when they're all coming to the same venue.

For an online event with a global audience, the opposite is true — you want the time anchored so a viewer in another country sees it converted to their own clock. Decide which case you're in before you print, because the two behave differently.

All-day events versus timed events

A conference day or a birthday is an all-day event with a date but no clock time. A webinar is a timed event with a start and end. Encoding a timed event where you meant all-day leaves guests with a 00:00 entry that looks like a mistake.

If your event spans several days, set the end date accordingly so the block covers the whole run rather than collapsing onto the first morning.

Not every calendar app behaves the same

Apple Calendar and Google Calendar both accept the standard format cleanly. Some Android scanner apps show the event as text and ask the user to add it manually, and a few older apps ignore the end time. Test on both an iPhone and an Android phone before committing to print.

How to build an event code

  1. Name the event. Use a title guests will recognise in a crowded calendar, not just 'Event'.
  2. Set start and end. Pick real start and end times. An end time stops the entry from blocking someone's whole day.
  3. Add the location. Enter the venue or address so tapping it in the calendar opens directions.
  4. Download and place on the invite. Export SVG for a printed invitation, PNG for a digital one shared in chat.

Technical details

  • Maximum characters: 2953
  • Recommended error correction: M (medium) — the event block is compact, so medium recovery keeps the printed code small and quick to scan.
  • Payload wraps a VEVENT in a VCALENDAR container with DTSTART and DTEND.
  • Times without a timezone are read in the scanner's local time; anchor them only when you want per-viewer conversion.

Frequently asked questions

Will scanning add the event automatically?
No — it opens a pre-filled 'add event' screen and the guest taps to confirm. Nothing is written to their calendar without their consent, which is exactly the behaviour you want.
Can I include a description or a link?
The core fields are title, location, start and end. Long descriptions inflate the code; put a link in the location or description sparingly and keep the text short so it still scans.
The event shows at the wrong time for some guests. Why?
You encoded a timezone-anchored time and their phone converted it, or vice versa. For a single-venue event, use plain local time so everyone reads the same clock value.
Does it handle recurring events?
This generates a single event. Recurring rules are supported by the calendar format but rarely scan reliably across apps, so for a weekly series a link to a calendar subscription is more dependable.
What if the guest declines and wants to add it later?
A static code stays valid until the event passes, so they can scan the same flyer again. Nothing expires on your side.
Which format does it use?
The standard iCalendar VEVENT block, the same structure email invitations use, which is why mainstream calendar apps recognise it.

See also

Related generators