Skip to content

Event QR code generator

The date, the time and the place, in the calendar in one scan.

An event's name, time and place, added to the calendar of the phone that scans it. For posters, tickets and invitations.

ContentCalendar event
Kind of code

A set time is the same moment everywhere. Local time is that time wherever the reader is.

Date and time

Leave this empty for a one-day event.

When scannedOffers to add an event to the calendar.

An event with its time and place, added to the calendar in one step.

Space usedNo code yet
StyleStandard
ModulesSquare
Corner squaresSquare
ColourModules #000000 on #ffffff
FrameNo frame
Printed sizeAny size
Scan checkNot checked yet
SavePNG
LibraryChecking

Proof

A sample code in the current design. It is not your code.

SampleWidth 25 mm

This is a sample. Your code appears here as you type.

Surround

Match a card

Hold a bank card against the screen and move the slider until the outline is the same width. The setting lasts until you leave the page.

3.78

Simulated captures

  1. SharpNot checked
  2. FarNot checked
  3. Soft focusNot checked
  4. AngleNot checked
  5. DimNot checked
  6. GlareNot checked
  7. Ink spreadNot checked

Each picture stands for a condition. The word under it is the check's result.

Sample

The studio needs JavaScript, because everything it does happens in this page. The offline file further down is the same studio in a single document you can keep.

In detail

Time zones, and events that last all day.

The code holds a calendar event in the iCalendar format that phone calendars read. A set time is the same moment everywhere, which suits an online meeting; local time is that time wherever the reader is, which suits opening hours printed on a door. An all-day event takes a first and a last day instead, and a one-day event leaves the last day empty.

Every field adds modules, so a long description makes a denser code that has to be printed larger. Keep the description short and put the detail on a web page the event links to. The phone asks before adding anything, so nothing appears in a calendar without the reader choosing it.

Static codes

Nothing sits between the code and where it goes.

Many QR code sites sell what they call dynamic codes. The code you print points at their server, the server forwards each scan to your link, and the forwarding stops when the trial or the subscription does. The trial is often seven to fourteen days, and by the time it ends the code is usually on a menu, a box or a shop window.

A code made here holds your link, your network or your contact details itself. A phone reads them straight out of the pattern, so there is no server in the way and nothing anyone can switch off. It keeps working for as long as the page it points at does.

Changing the destination later

The usual reason to buy a dynamic code is to change where it goes after printing. You can do that on your own terms: point the code at an address on a site you control, such as example.com/menu, and redirect that address wherever you like. The studio writes the redirect for Cloudflare, Netlify, Vercel, Apache and nginx, or a small HTML page for a host with no redirect settings, and says which status to use for a destination you may change.

Counting scans

To know how many people scanned a code, add campaign tags to its link and your own analytics counts the visits. The studio fills in the source, medium and campaign for you. The count sits in your analytics, beside everything else you measure, and nobody else sees it.

Scan check

Checked before it is printed, not after.

A code can follow the standard perfectly and still fail on the wall: too small for the distance, too little contrast, a logo over modules the reader needed. The studio reads every design back before you save it, the way a phone would.

  • Simulated captures

    The check prints the code into simulated photographs, taken from far away, out of focus, at an angle and in poor light, and reads each one the way a strict phone reader would. A code that only scans in perfect conditions does not pass.

  • Your size and your distance

    Tell it how far away people will stand and how wide the code will be printed, and it holds the design to both. The answer comes back in plain terms: the distance in centimetres it still reads from, at the width in millimetres you chose.

  • Contrast you can measure

    Every colour pair has its contrast ratio beside it, and the studio says when the modules are lighter than the background, which many phones cannot read. A transparent background is measured against white, with a reminder to check it against whatever it is printed on.

  • Room for a logo

    A logo covers part of the code, and error correction is what lets a phone read around it. The studio suggests level H, which leaves the most room, keeps clear space around the logo, and runs the check with the logo in place.

  • Three answers

    Scans well, scans with cautions, or will not scan reliably, each with the reason and a fix where there is one. Change the design afterwards and the result is marked as out of date until the check runs again.

What a code can hold

Twenty-two kinds of content, each written the way phones expect it.

A Wi-Fi code, a contact card and a bank transfer are each a small format of their own, and a phone that meets one written slightly wrong just shows the text. Every field is checked as you type: an IBAN against its check digits, a GTIN against its check digit, a phone number for its country code. The kinds with a page of their own are linked.

Everyday

  • Web link

    A web address that opens in the browser.

  • Text

    Any text, shown as it is.

  • Email

    An email with the address, subject and message filled in.

  • Phone call

    A phone number to call.

  • Wi-Fi network

    The name and password of a Wi-Fi network, so a phone can join without typing them.

  • Contact card

    A contact with name, numbers, email and address, saved to the address book in one step.

  • Contact card (compact)

    A shorter contact card that makes a smaller code, with fewer details than a full one.

  • Calendar event

    An event with its time and place, added to the calendar in one step.

  • Map location

    A point on the map, opened in the map app.

Messages and calls

  • Text message

    A text message with the number and message filled in.

  • WhatsApp chat

    A WhatsApp chat with a number, with a message typed in if you like.

  • Telegram chat

    A Telegram chat with a username or a phone number.

  • Signal chat

    A Signal chat with a phone number.

  • FaceTime call

    A FaceTime call to a phone number or an email address.

Payments

  • SEPA transfer

    A euro bank transfer with the account, amount and reference filled in, for banking apps in Europe.

  • Swiss QR-bill

    The payment part of a Swiss QR-bill, in francs or euros.

  • Pix payment

    A Pix payment to a Pix key, for banking apps in Brazil.

  • UPI payment

    A UPI payment to a payment address, for payment apps in India.

  • Bitcoin payment

    A request to pay a Bitcoin address, with the amount filled in if you like.

  • Lightning invoice

    A Lightning invoice from a wallet, as a code that can be scanned to pay it.

Products and invoices

  • Product link (GS1)

    A product code that tills read as the barcode and phones open as a web page.

  • Saudi e-invoice

    The code on a Saudi tax invoice. It can be read here but not made.

Design

Your colours and your logo, within what a camera can read.

Start from one of forty-six presets, each drawn with your own content rather than a sample, or set every part yourself. Shuffle picks a new combination that still scans, and Undo goes back.

  • Modules and corners

    Fourteen module shapes, from squares and dots to bars, hexagons and stars, and corner squares built from nine outer rings and eight centres, each offered only where phones still find it among the modules you chose, so the three corners can match a brand or stand apart from it.

  • Colour and gradients

    Solid colour, linear and radial gradients or a pattern, spread across the whole code or within each module, with their own colours for the corner squares and the background, which can be transparent.

  • Logos and icons

    Add your own logo as a PNG, JPEG or WebP, or one of sixteen built-in icons for links, Wi-Fi, menus, music and the rest. Choose how much clear space it gets, whether the modules under it are cleared, and whether it sits on a plate.

  • Frames and captions

    Eleven frames, from a banner and a speech bubble to a ticket, a hang tag and a stamp, each with a caption such as “Scan me” to tell people what the code is for.

  • A proof at true size

    The code is shown as a printer's proof. Hold a bank card against the screen to calibrate it once, and the proof is drawn at the width it will print, so you can judge the size before paper is involved.

  • Brand kits and saved designs

    Keep your colours, your logo and your favourite designs in a library: a file you save and open, or a library in this browser, which stays off until you turn it on and is deleted when you turn it off. A design holds the look of a code and never what it says, so a library file is safe to send to a colleague.

Scanning and safety

See where a code goes before you go there.

Point a camera at a code, open a picture of one or paste a screenshot. The studio shows exactly what the code holds and what a phone would do with it, before anything is opened, and says plainly when something about it deserves a second look.

  • Exactly what it says

    The content is shown as it is written in the code, with the kind of content it is and what a phone would do with it: open a page, join a network, save a contact or start a payment.

  • Look-alike addresses

    It flags an address written in letters from another alphabet that look like ordinary ones, an address that mixes alphabets, a numeric address in place of a name, and a link written to look like a different site.

  • Redirect services

    It names the link shorteners and QR redirect services a link goes through, because whoever runs one decides where the scan ends up and can change it at any time.

  • Payments and messages

    It says when a code starts a payment, prepares a message, joins a network with no password or dials a service code with * or #, which can change phone settings such as call forwarding.

  • Tracking and insecure links

    It counts the tracking parameters a link carries, warns when a link does not use a secure connection, and points out a link so long that the part you can see may not be the part that matters.

  • Read on your machine

    The camera frame or the picture is read in this page and sent nowhere, so checking a code tells nobody what it says.

Replacing a code that goes through someone else's server

If a code you have already printed goes through a redirect service, scan it here, open the address it leads to, and make a new static code for that final address. The new code no longer depends on the service. Any code you scan can also be remade in Create as it is, with the same content and your own design.

Bulk and print

A thousand codes from one spreadsheet.

Each row of a CSV file becomes a code in the design you made in Create. The file is read in this page, up to ten thousand rows at a time, and nothing in it goes anywhere.

  • Columns into content

    Write the content as a template that mixes text with column names in curly brackets, so a column of product numbers becomes one web address per row. File names follow a template too, with characters a file name cannot hold replaced and repeats numbered.

  • Exports in other encodings

    A file in UTF-8, as Google Sheets and Numbers save it, is read as it is, and so is Excel's UTF-16 Unicode Text. Any other file is read in the encoding Excel on Windows saves CSV in for the page's language: Shift_JIS on the Japanese page, GBK on the Chinese page, Windows-1256 on the Arabic page and Windows-1252 on the rest. The studio says when it has done this. If letters still come out wrong, choose the file's encoding from the list, which also offers Big5, Korean and Cyrillic.

  • A ZIP with a manifest

    Download every code as its own file, in the format you choose, in one ZIP with a manifest listing what became of each row. A row that could not be made is named there rather than quietly missing.

  • Label sheets

    Or lay the batch out as a PDF of label sheets in common A4 and US Letter layouts, from small address labels to business cards and round stickers, ready for a desktop printer.

  • For a print shop

    PDF and EPS can be written in CMYK, and a PDF can carry bleed and crop marks. SVG keeps every module a sharp shape at any size, for signage or anything that will be scaled.

  • Printed at its real size

    A single code can go straight to your printer at the width it was checked for, and a PNG records its print resolution, so a layout program places it at that size too.

Privacy

What you put in a code stays with you.

A QR code is often a container for things people would rather not publish: a Wi-Fi password, a mobile number, a home address on a contact card, an IBAN. Making the code, drawing it, checking it and reading one back all happen in this tab.

  • Nothing is sent

    What you type, the logo you add, the spreadsheet you open and the picture you scan are all handled on your machine. There is no account and no copy on a server, because no step of making a code needs one.

  • Content is never kept

    The studio never stores what a code says. Designs and brand kits are kept only when you ask: in a library file you save, or in a library in this browser that stays off until you turn it on and is deleted when you turn it off. Either one holds the look of a code and none of its content.

  • No analytics on these pages

    The studio's pages load no analytics script, and their content security policy allows connections to this site alone. Your browser's developer tools show both.

  • Source you can read

    Everything that makes, checks and reads the codes is published under the MIT licence, on GitHub and as an npm package, and it has no runtime dependencies, so there is nothing underneath it you cannot read.

Offline

The whole studio in one file you keep.

Each release includes the studio as a single HTML file. Open it from your own disk and turn the network off: every part of it keeps working, because none of it needed the network in the first place.

The file

The single file build

Create, Scan, Bulk and the library in one document, with its script and stylesheet inside it. It keeps no cookies and nothing in browser storage, and its first lines carry a content security policy that refuses every connection.

Licence
MIT
Download from the release listing

Checking the download

Every release carries a SHA256SUMS file beside the HTML file, and a build provenance attestation that GitHub signs against the workflow run and the commit that produced it.

The build is deterministic, so the file can also be rebuilt from source and compared byte for byte. The repository's RELEASING.md has the commands.

macOS and Linux, with SHA256SUMS in the same folder

shasum -a 256 -c SHA256SUMS

Windows, then compare the result with SHA256SUMS

certutil -hashfile qr-code-studio.html SHA256

The attestation, with GitHub's command-line tool

gh attestation verify qr-code-studio.html --repo hexpro-dev/qr-code-studio

Trying it yourself

Open the file, turn off Wi-Fi, and make, check, save and scan a code. The project's own tests do the same in Chromium, Firefox and WebKit, and fail if a single request leaves the page or anything is left behind.

Detail

The specifics.

The figures hold for this page and for the offline file, which are built from the same source, except where a row says otherwise.

Runs in
Any modern browser, on a phone or a computer
Content
Twenty-two kinds, from web links, text, Wi-Fi and contact cards to SEPA, Pix and UPI payments and GS1 Digital Link
Symbols
QR Code Model 2, versions 1 to 40, plus Micro QR and rectangular Micro QR for very small print
Error correction
L, M, Q and H, about 7, 15, 25 and 30 per cent
Saves as
SVG, PNG, PDF, EPS, JPEG and WebP, or straight to the printer at its real size
Print colour
sRGB, or CMYK in PDF and EPS; PDF with bleed and crop marks
Bulk
Up to ten thousand CSV rows a batch, as a ZIP of files or a PDF of label sheets
Reads from
A camera, a picture or a pasted screenshot
Scan check
Simulated captures at your printed size and distance: far away, out of focus, at an angle and in poor light
Expiry
None. Codes are static and hold their content themselves
Network
Nothing you enter is sent. No analytics, and connections to this site only
Storage
What a code says is never stored. Designs go into a file you keep, or into a library in this browser that you turn on
Offline
A single HTML file that keeps nothing in the browser, released with a SHA-256 checksum and a build provenance attestation
Dependencies
None at runtime
Licence
MIT

QR Code is a registered trademark of DENSO WAVE INCORPORATED.

Questions worth asking.

Is it really free?
Yes. There is no account, no plan and no trial, and no limit on how many codes you make or how often they are scanned. A code made here is yours to print and use, in commercial work or anywhere else, with no watermark and no credit asked for.
Will my QR code stop working?
Not because of anything here. The code holds its content directly, so it works for as long as that content does: a web link works while the page is up, and a Wi-Fi code works until the password changes. Nothing on our side is involved once the code is made.
Why don't you offer dynamic codes or scan analytics?
Both need a server in the path of every scan. That server is what lets a site count scans and change destinations, and it is also what lets a code stop working when the plan stops being paid for, or when the company behind it closes. We would rather a printed code never depend on us. The two things people want from dynamic codes are still possible: point the code at an address on your own site and redirect it, and add campaign tags so your own analytics counts the visits.
Can I change where a code goes after it is printed?
Only if the code points at something you control. Use an address on your own domain, such as example.com/menu, and change the redirect behind it whenever you need to; the studio writes that redirect for the common hosts. Use a temporary status, 302 or 307, for a destination you may change, because browsers remember a permanent one.
How do I count how many people scanned it?
Add campaign tags (source, medium and campaign) to the link, and the visits show up in whatever analytics your site already uses. The studio adds the tags for you, and the figures stay yours.
Will adding a logo stop it scanning?
Not if there is room for it. Error correction lets a phone read a code with part of it covered, and level H leaves the most room, about 30 per cent of the code. The scan check reads the code with the logo in place, so you find out before printing rather than after.
Which colours scan reliably?
Dark modules on a light background, with strong contrast between them. Many phones cannot read a code whose modules are lighter than its background, and a pale colour on white often fails in poor light. The studio shows the contrast ratio for every pair you choose and says when it is too low.
How big should I print it?
That depends on how far away people will be. Enter the furthest scanning distance and the printed width, and the scan check says whether the code holds up. A short link makes a simpler code, which reads from further away at the same size.
Does the scan check guarantee every phone will read it?
No check can. It reads the code through simulated captures that are harder than most real ones, which catches the common failures. Before a large print run, scan a test print with the phones your audience is likely to use.
Is a Wi-Fi password safe in a QR code?
The password is written into the code as text, so anyone who scans it can read it, and a clear photo of the code is as good as the password. Every Wi-Fi code works this way. Put it where you would be content to write the password on the wall, and change the password if the code ends up somewhere it should not be.
How can I tell whether a code is safe to open?
Scan it here first. The studio shows the full address or content and what a phone would do with it, with warnings for look-alike addresses, redirect services, payments and links that run a script, all before anything is opened.
How many codes can I make at once?
Up to ten thousand rows of a CSV file in one batch, as a ZIP of files with a manifest or as a PDF of label sheets. A longer list can be split into several files and made one batch at a time.
Can I send the codes to a print shop?
Yes. Save as PDF or EPS in CMYK, with bleed and crop marks on a PDF if the shop asks for them, or as SVG, which stays sharp at any size.
Is anything I type uploaded?
No. The code is made, drawn and checked in your browser, and a picture you scan is read there too. The network panel in your browser's developer tools shows nothing carrying it away, and the offline file does the same job with the network switched off.
Does it work without an internet connection?
The offline file does. Download it from the release listing, open it from your own disk, and every part of it works with the network off.
What are Micro QR and rectangular Micro QR?
Smaller symbols for printing that has no room for a QR code, such as a component label or the edge of a small package. Most phone cameras cannot read either, so the studio says so whenever you choose one. Use them only where the reader is a scanner you know supports them.
Which file format should I choose?
SVG for anything that will be scaled or edited, such as signage or a website. PDF or EPS for a print shop. PNG for documents, slides and email, at the width you need. JPEG and WebP when a system will take nothing else.

More pages

The same studio, opened for one job.

Each of these is this studio, already set up for what its name says, behind a page written about that one job. Nothing sits behind them that is not on this page.