Skip to the generator

Event QR code generator

Put your event in a calendar with the date, the time and the place already filled in.

Optional.

Optional.

Optional.

Your QR code appears here

Start typing and it updates as you go.

PNG is 2048px. SVG scales to any size, which is what print wants.

Design
Colours

Or start from a pair that scans well:

Module shape

The empty border around the code. 4 is the standard.

Recovers about 15% damage. The usual choice.

Centre logo

Optional. Keep it simple - a mark reads better than a wordmark at this size.

What is actually in an event QR code

An event QR code holds a small calendar file - the same iCalendar format an .ics attachment uses. A VEVENT block carries SUMMARY for the title, DTSTART and DTEND for the times, plus LOCATION and DESCRIPTION, and the whole thing is wrapped in a VCALENDAR envelope. The wrapper costs about forty bytes and makes the payload a valid calendar file, so it also opens on a desktop rather than only on a phone.

Times are stored in UTC, with a Z on the end. That is what makes the event show at the right local time for somebody who scans it in another country, and it has one consequence worth knowing: the time you type is read as the time on the device you are making the code on. Making a poster for a 10:00 event while sitting a few time zones away shifts it. All-day events skip time zones entirely and are stored as plain dates, where the end date is exclusive - a one-day event on the 11th is written as ending on the 12th, which is the standard behaviour and the reason hand-written .ics files so often show events finishing a day early.

Support is genuinely patchy, and it is the honest weak point of this format. The iPhone camera handles a calendar code well: it recognises the event and offers to add it. Android varies by scanner - the default camera or Google Lens on some phones will offer to add it, and some third-party scanning apps show the raw text instead. Always print the date, time and place in readable type next to the code. A scan that does not work should cost somebody a moment, not the whole event.

The text inside the code, for a 10:00 start in a zone one hour ahead of UTC

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//MakeTheQR//EN
BEGIN:VEVENT
SUMMARY:Spring plant sale
DTSTART:20260411T090000Z
DTEND:20260411T140000Z
LOCATION:Northgate Village Hall
DESCRIPTION:Cash or card. Bring a box for cuttings.
END:VEVENT
END:VCALENDAR

Good for

  • A gig or theatre poster
  • A save-the-date card
  • A conference badge for the keynote
  • A market stall sign for the next date
  • A parents evening slip
  • A class timetable handout

Worth knowing before you print it

  • Make the code on a device in the event's time zone

    The time you type is interpreted as local time on the machine you are using, then converted to UTC for the code. Build the poster for a London event while travelling and the stored time moves by however many hours you are away. If you have to do it remotely, scan the finished code and check the time the calendar shows.

  • Print the date and time in words as well

    This is the QR type most likely to meet a scanner that does not understand it, and an event nobody can read is worse than no code at all. The code is a convenience on top of the information, never a replacement for it. Anyone whose phone shows raw text should still be able to read the poster.

  • For an all-day event, give the last day it runs

    Enter the final day, not the day after. The exclusive end date the format requires is added for you. This is the one place where copying a date straight out of another calendar tool goes wrong, because some of them expect the day after and some do not.

  • One code holds one event

    There is no recurrence and no list of sessions - a weekly class or a three-day festival programme cannot be encoded here. Put the schedule on a page and use a URL code, or make one code per session and label them clearly. Commas and semicolons in your title are escaped automatically, so a title like "Talk\, then Q and A" appears intact in the calendar.

Common questions

On an iPhone, yes - the camera recognises a calendar event and offers to add it. On Android it depends on the scanner: the built-in camera or Google Lens usually handles it, while some third-party scanning apps show the raw calendar text instead. Print the details beside the code so a failed scan is not a lost attendee.

No. The phone shows the event and the person taps to add it to their calendar, where they can change the reminder or the calendar it lands in. Nothing is written to somebody's diary because they pointed a camera at a poster.

Times are stored in UTC, so an attendee in another country sees the correct local time automatically. The number you type is read as the local time on the device making the code, which is what you want when you are in the same place as the event and worth double-checking when you are not.

No. The code carries the event, not an alarm, so people get whatever default reminder their calendar applies when they add something. Adding one would make the payload longer and is handled inconsistently in any case.

The old code is wrong and there is no way to update it - the event is inside the pattern. For anything likely to move, point a URL code at an event page instead, and let people follow the page. That is also where cancellations and running orders can live.

No. A calendar code adds a date to a diary and tells you nothing about who scanned it. If you need names and numbers, use a URL code pointing at a booking form or ticket page, and keep the calendar code for the confirmation.

Other kinds of QR code

All free, all made in your browser.

Printing it? How to print a QR code covers size, contrast and the quiet zone.