Skip to content
QRMakery

Event QR Code Generator

Somebody reads your poster, points a camera at it, and the event is in their calendar with the date, the time and the venue already filled in. No ticketing account in the middle.

The details live inside the code, not on a server. That is why it works with no signal, and why changing the date means reprinting.

Add your link or content

The time is encoded without a timezone, so it shows as the time you typed on any phone. That is right for a printed poster.

Customize your QR code

Finder squares stay square whichever you pick. They are what a scanner locates the code with.

The blank margin scanners need. 4 is the standard minimum.

Download your QR code

Your code appears here as you type.

The Time Has No Timezone, and That Is Deliberate

A poster that says 7pm means 7pm at the venue. If the code converted that to UTC, a phone set to another country would show a different hour, and somebody would arrive at the wrong time holding a calendar entry that disagreed with the poster they photographed.

So the time is written as what RFC 5545 calls a floating time: no timezone, no conversion, the same clock reading on every phone. That is correct for a printed poster at a physical venue. It is wrong for a webinar with an audience in four countries, and for that case you want a link to an event page that can do the conversion properly.

A Calendar Entry Is a Lot to Fit in a Square

The name, both timestamps, the venue and any description all sit inside the symbol. That makes an event code one of the densest things on this site, and density decides how large it has to be printed to stay readable.

What you enterWhat the scanner readsVersionModulesPrint at least
Name and times onlyThe minimum a calendar entry needs. Already denser than a link.BEGIN:VEVENT SUMMARY:Summer Fair DTSTART:20260815T110000 DTEND:20260815T160000 END:VEVENT89 characters75321.2 mm
With a venueWorth the modules: without it the entry is a time with no place.BEGIN:VEVENT SUMMARY:Summer Fair DTSTART:20260815T110000 DTEND:20260815T160000 LOCATION:Victoria Park\, Bethnal Green END:VEVENT128 characters96124.4 mm
With a short descriptionAbout as much as is practical on a printed poster.BEGIN:VEVENT SUMMARY:Summer Fair DTSTART:20260815T110000 DTEND:20260815T160000 LOCATION:Victoria Park\, Bethnal Green DESCRIPTION:Free entry. Dogs welcome. Cash only at the food stalls. END:VEVENT196 characters127329.2 mm
A link to the event page insteadEvery detail, none of the modules, and it needs a connection.https://example.com/summer-fair31 characters33714.8 mm
One event, four amounts of detail, plus a plain link for comparison. Measured at error correction level Q by the same encoder the tool above uses, and every row decoded back before it was published.

The last row is the argument against doing this at all. A link to an event page carries every detail you like and encodes tiny, because the details are on the page rather than in the code. What it does not do is work when the signal in the venue is bad, and it stops working entirely if the page goes away.

A reasonable compromise on a poster is both: the calendar code for the date and place, and a printed link for tickets. If you are selling tickets, the check-in tool handles scanning people in at the door.

Two codes that often sit beside this one on the same poster: a map code for getting there, and a donation code if the event is raising money. The donation one has safety rules of its own, because it moves money.

If the event is a permanent exhibit rather than a dated one, the museum label sizing is the more useful starting point.

What This Does Not Do

  • No tickets, no RSVPs, no attendee list. The entry goes into the scanner's own calendar and you never see it. For replies, use a form behind a link.
  • No repeating events. One entry, one date. Recurrence rules encode badly and scan support for them is poor.
  • No reminders or alarms. Those are a per-person setting.
  • Changing the date after printing is not possible. That is what a dynamic code pointing at an event page is for.
  • Some older scanner apps read the block as plain text rather than offering to add it. The details are still legible, which is a soft failure rather than a dead code.

Event QR Code Questions

What happens when someone scans an event QR code?

Their phone reads the calendar entry and offers to add it, with the name, times and venue already filled in. Nothing is added until they agree, and it goes into their own calendar rather than anywhere you can see.

Does the event QR code handle timezones?

It deliberately does not. The time is written as a floating local time, so a code that says 7pm shows 7pm on every phone that scans it. That is right for a printed poster at a venue, and wrong if your audience is spread across countries. For those, link to an event page.

Why is my event QR code so much bigger than my other codes?

Because a calendar entry carries a lot of text. The name, both timestamps, the venue and any description all sit inside the symbol, which pushes the module count up. The table on this page shows the difference against a plain link.

Can I change the date after printing the code?

No. A static code carries the details themselves, so a change means reprinting. If the date might move, encode a link to an event page and change the page instead. That is the honest trade between the two approaches.

What error correction should an event code use?

Quartile, which is where this page starts. Posters get handled, folded and rained on, and Quartile rebuilds about a quarter of the symbol. If the payload is long enough that the code will not fit your poster, drop to Medium and print it larger rather than cutting the venue out.

Invitations, RSVPs, guest photos, and scanning people in at the door.

All tools

Guides worth reading

All guides
  • Comparisons

    Static vs Dynamic QR Codes

    What the redirect actually buys you, measured on real encoded codes, and which payloads are worse off for it.

    16 min read