SmartQRCode
Pricing
  1. Home
  2. /Blog
  3. /Event calendar QR code ICS
type how to

Event calendar QR code ICS

SmartQRCode editorial · Updated October 2026

Event calendar QR code ICS is a hosted landing that downloads a calendar file. Times are floating calendar times. All-day uses DTEND exclusive all-day. Rescans should hit a stable UID on rescan. This is not a maps pin. If the date cannot slip, a Canva static file is enough.

Event calendar QR code ICS

The Event type is a landing page, not a redirect. A calendar entry is added by downloading an ICS file. There is nothing to 302. The page exists so the guest can read title and time before saving. Times are written floating, with no Z suffix and no TZID. Guessing a zone would move the gig. All-day events use a DATE value. DTEND exclusive all-day means a one-day event on the 1st carries an end on the 2nd so it does not disappear in strict calendars. UID is hashed from the code so a later scan updates the same row.

The form walkthrough is how to make an event QR code. This page is the file. Do not describe this type as opening Maps. D67 is maps-app behaviour for location codes. It does not apply. Where is a text field folded into the ICS. Tickets still belong on a Website URL. Paid options are $1.99, $29, $97, or $197. There is no unpaid tier. A one-off date that cannot move can live in Canva.

Floating times, not a TZID guess

  1. Create an Event code. Set Event Name and Starts.
  2. Type the venue wall clock into Starts. Do not convert to UTC in your head. The file will not attach a TZID.
  3. Add Ends after start, or omit it. Timed events with no end default to one hour in the file so the entry is not a blip. All-day starts (date only) default the exclusive next day.
  4. Put a human address in Where. Do not paste a maps URL and expect a pin.
  5. Optional Details and ticket link. Newlines are escaped in the file. Keep details short enough to read.
  6. Pay, scan, download. Confirm the hour on a calendar that is not already set to a travel zone you forgot about. The unpaid preview is /qr-preview.
  7. Export SVG or 300 dpi PDF of the symbol. Print at least 2 cm across at about 30 cm. Badges flex. Prefer a posted sheet at the door.
  8. If the gig slips, edit Starts. Re-scan. The UID should update the existing entry.

The event generator is the tool. Text is a paragraph, not a VEVENT.

Why times are floating instead of a TZID

why times are floating instead of a TZID is honesty. We ask for 7pm. We do not know which IANA zone you meant. Attaching the wrong TZID moves the event for everyone. UTC conversion has the same risk. floating calendar times mean that 7pm in the file is 7pm on the phone's calendar date. Tell guests the city in Where or Details if the audience is flying in.

Line folding in the file is 75 octets, not characters. You do not set that. Emoji in a title is four bytes. The writer handles it. You should still keep titles boring.

What all-day DTEND means

what all-day DTEND means is the exclusive end on a DATE. A gig on 1 August that is all-day must end on 2 August in the file or some calendars show nothing. Timed events are not that rule. A missing timed end becomes one hour. Do not mix an all-day start with a timed end. The writer will take the date part.

A malformed file is not offered. If title or start cannot build a VEVENT, there is no download button with a broken attachment. That is deliberate. Calendars will accept junk and then you cannot delete it cleanly.

Rescans should update the same UID

stable UID on rescan is the point of seeding UID from the short code. A random UID per request would duplicate every scan. If a guest sees two entries, they saved twice from two codes, or an old static ICS sits beside the new one. One hosted Event code, one UID family.

This is still not a maps pin. If you need Maps, use Location. If you need shop hours, use Business. If you need a paragraph of house rules, use Text.

What the guest sees before they save the file

The landing shows title, time, place, and a download. That page is why Event is not a silent file hop. Guests can refuse the calendar. They cannot refuse a 302 they never saw. Tickets still belong on a Website URL if you need a shop.

Line folding is 75 octets. You do not set it. Emoji in a title is four bytes. Keep titles boring anyway. ORGANIZER is not collected. We do not emit a fake mailto.

Export SVG or 300 dpi PDF of the symbol. Print at least 2 cm across at about 30 cm. Lanyards flex. A posted A4 at the door beats a wrinkled badge. Pause cancels the page. Archive keeps the flyer live. A hosted ICS landing lasts as long as we resolve it.

After you export, open the ICS on a second phone that does not already have the event. Confirm the title, the floating start, and that a second scan updates the same UID instead of stacking a duplicate. If the flyer also carries a maps pin, that is a second code or a URL type, not a field on this ICS.

When a static ICS in Canva is enough

when a static ICS in Canva is enough is a date that cannot slip, a print you will not count, and a file you are willing to trap in the modules. Generate a static QR in Canva or host a .ics URL yourself and encode that URL statically. Changing the start then means a new print.

Use the hosted Event type when the door might move, when you want scan totals, or when you want the landing plus a clean ICS. Export a printer file. Keep /qr-preview off the plate. Do not promise Google Maps. Do not promise a ticket.

Questions this raises

Floating calendar times mean the wall clock you typed. A guessed TZID would shift the gig in every attendee calendar.

On a DATE value, DTEND is exclusive. A one-day event on the 1st ends on the 2nd in the file so it does not vanish.

When the date cannot slip and you do not need scan counts. Encode a static file. You cannot edit the start after print.

It should update. UID is seeded from the code so a stable UID on rescan replaces the old row instead of adding a second.

No. It is not a maps pin. Where is a text field in the ICS. Use the Location type if you need a maps app.

Keep going

The tools and playbooks this post refers to, one click away.

Generator

event generator

Open it
Generator

website generator

Open it
Generator

text generator

Open it
Use case

event management

Read the playbook
Guide

how to make an event qr code

Read it
Guide

how to make a business qr code

Read it

Make the code this post is about

$1.99 for 7 days, then a paid plan. Pick a type, brand it, and edit the destination whenever you like, even after it is printed.

Create a QR codeSee pricing
SmartQRCode

Dynamic QR codes you can edit after printing, with scan analytics on every one. From a single table tent to a warehouse of asset tags. Pay once or subscribe.

Create a QR codeTalk about Business

QR code types

  • Website QR code
  • Menu QR code
  • WiFi QR code
  • PDF QR code
  • Business card QR code
  • WhatsApp QR code
  • Google review QR code
  • Event QR code
  • Location QR code

More QR codes

  • Text QR code
  • Image QR code
  • Video QR code
  • Social media QR code
  • App download QR code
  • Google Form QR code
  • Business profile QR code
  • All QR code types

Features

  • Dynamic QR codes
  • QR codes with tracking
  • QR code with logo
  • Custom QR code design
  • QR codes that never expire
  • One-time payment QR code
  • No-subscription QR codes
  • Unlimited-scan QR codes

Business

  • QR codes for business
  • Bulk QR code generator
  • QR code API
  • QR code webhooks
  • Custom scan domains
  • White label QR codes
  • Team accounts and roles
  • QR code management platform

Solutions

  • Restaurants
  • Retail
  • Events
  • Healthcare
  • Real estate
  • Hotels
  • All use cases

Resources

  • Guides
  • Compare QR generators
  • Static vs dynamic
  • QR code cost
  • Buy a QR code
  • Cheap QR codes
  • Pricing
  • Help centre
  • About us
  • Contact us
GDPR compliantSSL securedPrivacy first
Terms of servicePrivacy policySecurity·© 2026 SmartQRCode

QR Code is a registered trademark of DENSO WAVE INCORPORATED.