Docs · Generators

Appointment QR code

For a booked appointment: the code adds it to the phone's calendar with the right length, an optional reminder and a link to reschedule.

Checked against the live tool on 27 October 2026 by decoding the codes it made.

All docs

At a glance

Format written
A full iCalendar file: VCALENDAR holding one VEVENT
Required
Title and start time
End time
Worked out from the start and the length you pick
Reminder
1 day before unless you change it, written as a VALARM
Error correction
Level M

Fields

Appointment title Required

Written as SUMMARY.

Starts Required

Written as DTSTART, as local clock time with no time zone.

Length Default 30 minutes

15, 30 or 45 minutes, 1 hour, 1 hour 30 or 2 hours. The tool adds it to the start to write DTEND.

Where Optional

Written as LOCATION.

Written as URL, and also added to the notes as Reschedule: followed by the link, since some calendars only show the notes.

Reminder Default 1 day before

No reminder, or 15 minutes, 1 hour, 1 day or 2 days before. It starts set to 1 day before, so choose No reminder if you do not want one.

Notes Optional

Written as DESCRIPTION.

What the code contains

Every field filled, 30 minutes, reminder 1 hour before

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//QRotto//Appointment//EN
BEGIN:VEVENT
SUMMARY:Dental check up
DTSTART:20261114T093000
DTEND:20261114T100000
LOCATION:14 Bridge Street\, Suite 3
URL:https://example.com/reschedule
DESCRIPTION:Please arrive 10 minutes early.\nReschedule: https://example.com/reschedule
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Dental check up
TRIGGER:-PT60M
END:VALARM
END:VEVENT
END:VCALENDAR

Title, start and a 45 minute length only

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//QRotto//Appointment//EN
BEGIN:VEVENT
SUMMARY:Dental check up
DTSTART:20261114T093000
DTEND:20261114T101500
END:VEVENT
END:VCALENDAR

What it does not do

  • It does not book anything. It only adds the entry to the person's calendar.
  • No time zone is stored, so the appointment shows at the same clock time wherever the phone is.

Found a mistake on this page? Suggest a fix on GitHub