Zum Hauptinhalt springen
OpenQRS
Tools
Aktuelle Sprache: Deutsch
100 % privat

Termin-QR-Code-Generator

100 % privat und lokal — Ihre Daten verlassen niemals Ihren Browser. Diese QR-Codes sind dauerhaft und laufen nie ab.

Einstellungen für Kalendertermin

Wird zur Eigenschaft SUMMARY und zum Titel des Kalendereintrags.

Geben Sie den Titel der Veranstaltung ein. Er wird zum Titel des Kalendereintrags.

Pflichtfeld. Lassen Sie beide Zeitfelder leer, um einen ganztägigen Termin zu erzeugen.

24-Stunden-Format. Leer bedeutet ganztägig und nicht Beginn um Mitternacht.

Leer lassen, damit der Termin am Startdatum endet. Bei ganztägigen Terminen schreibt das Werkzeug das exklusive Ende, das iCalendar erwartet.

Leer bei gesetzter Startzeit ergibt einen einstündigen Termin, wovon die meisten Kalender-Apps ausgehen.

Freie Ortszeit passt zu einer Veranstaltung an einem Ort. UTC passt zu einer Online-Veranstaltung mit Teilnehmenden in mehreren Zonen.

Freier Text in der Eigenschaft LOCATION. Kalender-Apps übergeben ihn beim Antippen an ihren Kartenanbieter.

Zeilenumbrüche bleiben erhalten. Jedes Zeichen hier vergrößert den Code, halten Sie ihn also auf das, was eine Erinnerung braucht.

Wird in die Eigenschaft URL geschrieben. Die Unterstützung ist uneinheitlich: Manche Apps zeigen ihn als antippbaren Link, andere blenden ihn aus.

Design

Modulform
Farbvorgaben
Eckrahmen
Logo in der Mitte hinzufügen
Bild auswählen oder hier ablegenPNG, JPEG, WebP oder GIF, bis zu 1000 KB

Das Bild wird auf dieser Seite gelesen und als data:-URL in den Code eingebettet. Es wird nicht hochgeladen und bleibt in der Datei, die Sie herunterladen.

Weitere Design-Optionen

Die dunkle Hälfte des Codes. Halten Sie sie deutlich dunkler als den Hintergrund.

Deckt die Ruhezone ebenso wie die Lücken zwischen den Modulen. Ein transparenter Hintergrund lässt sie aus der Datei heraus, es wird also nichts damit gezeichnet.

Kontrast 11.5:1 zwischen den Modulen und dem Hintergrund.

Farbvorgaben

PNG und WebP behalten einen Alphakanal; die SVG lässt das Hintergrundrechteck einfach weg. Worauf der Code liegt, wird zur hellen Hälfte des Kontrasts.

Verlauf

Ein Verlauf füllt nur die dunklen Module. Sein helleres Ende bestimmt den Kontrast, den ein Scanner tatsächlich bekommt, also müssen beide Enden dunkel bleiben.

Die zweite Farbe, nur bei ausgewähltem Verlauf verwendet. Sie wird gemeinsam mit der ersten auf Kontrast gemessen.

45°

Grad im Uhrzeigersinn, ausgehend von einem Verlauf von links nach rechts. Ein radialer Verlauf breitet sich von der Mitte nach außen aus, der Winkel gilt also nur für einen linearen.

Modulform

Abgerundete Formen decken weniger von jeder Zelle ab. Die Mitte bleibt bedeckt, und genau dort tastet ein Decoder ab, doch ein kleiner Druck eines dichten Codes liest sich mit Quadraten zuverlässiger.

Eckrahmen

Der Ring der drei Suchmuster.

Eckmitte

Das Auge in jedem Suchmuster.

4 Module

Der leere Rand um den Code, gemessen in Modulen. 4 ist das vorgeschriebene Minimum.

Eine höhere Stufe übersteht mehr Schaden und kostet Kapazität, derselbe Inhalt ergibt also ein dichteres Symbol.

Ein Logo sitzt in der Mitte und hält die Stufe auf H. Seine Breitengrenze folgt dem Symbol: 14% beim kleinsten Code, 30% bei einem dichten.

Live-Vorschau & Export

Export

Export

Raster, für Bildschirme

Füllen Sie das Formular aus, um die Downloads freizuschalten.

Exportgröße und kodierter Text
Nutzlast
Noch nichts kodiert
Symbol
Noch nicht gebaut
Korrektur
M

Warten auf Eingabe

Exportgröße

Zwischen 64 und 4096 Pixel. Export mit 1024 px.

Kodierter Text

Bauen Sie eine vollständige iCalendar-Veranstaltung und drucken Sie sie. Die Nutzlast ist der .ics-Inhalt selbst, das Telefon kann den Eintrag also anlegen, ohne irgendwo eine Datei herunterzuladen.

Beim Scannen

Die meisten aktuellen Kamera- und Scanner-Apps erkennen den Kopf BEGIN:VCALENDAR und bieten an, den Termin in den Standardkalender zu übernehmen, während einige ältere oder einfache Scanner stattdessen den Text unverändert anzeigen.

Die iCalendar-Nutzlast, genau

Der Code trägt ein vollständiges Objekt nach RFC 5545 und keinen Link darauf. Es beginnt mit BEGIN:VCALENDAR, führt VERSION:2.0 und eine PRODID mit, die diesen Generator benennt, umschließt ein einzelnes VEVENT und schließt mit END:VCALENDAR. Im Termin selbst stehen UID und DTSTAMP, die die Spezifikation verlangt, daneben DTSTART, DTEND, SUMMARY und je nachdem, was Sie ausgefüllt haben, LOCATION, DESCRIPTION und URL.

Jede Inhaltszeile endet mit einem Wagenrücklauf und einem Zeilenvorschub, in dieser Reihenfolge. Parser sind darin streng: Ein Objekt mit bloßen Zeilenvorschüben ist es, was einen sonst korrekten Termin beim Import scheitern lässt. Zeilen über 75 Oktetts werden gefaltet, indem CRLF und ein einzelnes Leerzeichen eingefügt werden, und Leser fügen sie vor dem Parsen wieder zusammen — deshalb zerlegt eine lange Beschreibung das Objekt nicht.

Weil der ganze Termin im Muster steckt, braucht das Telefon kein Netz, um den Eintrag anzulegen. Es bedeutet zugleich, dass der Termin eingefroren ist: Den Ort später zu ändern heißt, einen neuen Code zu erzeugen und zu drucken, denn es gibt nichts zu aktualisieren.

Freie Ortszeit gegen UTC

Im Modus der freien Ortszeit wird DTSTART als YYYYMMDDTHHMMSS geschrieben, ohne abschließendes Z und ohne TZID-Parameter. RFC 5545 nennt das eine schwebende Zeit, und sie meint genau das: 19:00 ist 19:00 auf dem Gerät, das sie öffnet, egal wo dieses Gerät steht. Für ein Konzert, einen Marktstand oder einen Tag der offenen Tür in der Schule ist das fast immer das Gewünschte, denn alle, die das Plakat lesen, stehen in derselben Zeitzone wie der Veranstaltungsort.

Im UTC-Modus wird dieselbe Eigenschaft als YYYYMMDDTHHMMSSZ geschrieben, und das abschließende Z legt den Zeitpunkt fest. Jedes Gerät rechnet ihn beim Import in seine Ortszeit um, ein Termin um 14:00 UTC erscheint also in Berlin als 15:00 und in New York als 09:00. Für ein Webinar ist das die richtige Wahl und für ein Dorffest die falsche.

Eine benannte Zone — DTSTART;TZID=Europe/Berlin — ist die dritte Möglichkeit der Spezifikation, und dieses Werkzeug bietet sie nicht an. Sie sauber umzusetzen verlangt eine eingebettete VTIMEZONE-Komponente mit dem vollständigen Satz an Umstellungsregeln für die Sommerzeit, was einer Nutzlast, die in ein Symbol passen muss, mehrere hundert Bytes hinzufügt, und ein Objekt, das eine TZID benennt, die es nicht definiert, ist ungültig. Freie Ortszeit und UTC decken die Plakatfälle ohne diese Kosten ab.

Maskierung, ganztägige Termine und Größe

Textwerte werden vor dem Weg in die Nutzlast so maskiert, wie die Spezifikation es verlangt. Zuerst die Backslashes, dann Semikolons und Kommas, dann Zeilenumbrüche; in jeder anderen Reihenfolge maskiert man die Backslashes doppelt, die man gerade eingefügt hat. Ein Doppelpunkt innerhalb eines Textwerts bleibt unangetastet — RFC 5545 verbietet ausdrücklich, ihn zu maskieren, während der ältere RFC 2445 es verlangte, weshalb manche handgeschriebenen Generatoren das bis heute falsch machen.

Ein ganztägiger Termin nutzt die Datumsform: DTSTART;VALUE=DATE:20260904. Sein DTEND ist exklusiv, ein einzelner Tag am 4. September wird also mit DTEND;VALUE=DATE:20260905 geschrieben. Wer das verwechselt, erzeugt einen Termin, der einen Tag zu kurz oder einen Tag zu lang ist.

Die praktische Grenze ist hier die Größe. Ein QR-Symbol fasst auf der niedrigsten Korrekturstufe höchstens 2.953 Bytes, und allein der Kalenderrahmen verbraucht rund zweihundert davon, bevor Ihr Text beginnt. Eine lange Beschreibung schiebt das Symbol auf eine höhere Version mit kleineren Modulen, was entweder größeren Druck oder einen näheren Scan verlangt. Die Vorschau zeigt die Version beim Tippen an, beobachten Sie sie also.

  • Aus einem Backslash wird \\, aus einem Semikolon \;, aus einem Komma \,
  • Aus einem Zeilenumbruch werden die zwei Zeichen \n
  • Doppelpunkte werden in Textwerten nach RFC 5545 nie maskiert

Fragen und Antworten

Warum zeigt mein Telefon eine Textwand statt der Nachfrage, den Termin einzutragen?

Der Scanner hat keine URL erkannt und ist darauf zurückgefallen, die Nutzlast anzuzeigen. Die meisten aktuellen Kamera-Apps erkennen den Kopf BEGIN:VCALENDAR und bieten an, den Termin anzulegen, aber ein minimaler Scanner kann womöglich nur Links. Die eigene Kamera des Telefons statt einer fremden App, oder eine eigens dafür gebaute Scanner-App, löst das meist.

Kann ein Code einen wiederkehrenden Termin tragen?

Mit diesem Werkzeug nicht. RFC 5545 drückt Wiederholung mit der Eigenschaft RRULE aus, und obwohl die Syntax kompakt ist, brauchen die Kombinationen aus Intervall, Wochentag, Anzahl und Ausnahmedaten ein eigenes Formular, um fehlerfrei eingegeben zu werden. Dieses Werkzeug baut einen Termin mit einem Beginn und einem Ende.

Trägt der Termin eine Erinnerung oder einen Alarm?

Nein. Eine VALARM-Komponente würde jedem Code Bytes hinzufügen, um eine Vorliebe zu bedienen, die die scannende Person meist selbst setzen möchte, und das Standardverhalten für Erinnerungen unterscheidet sich zwischen Kalender-Apps deutlich. Der Eintrag landet im Kalender und erbt, was dieser Kalender voreingestellt hat.

Was passiert, wenn zwei Menschen denselben gedruckten Code scannen?

Jede Person bekommt einen Eintrag im eigenen Kalender. Die UID wird aus den Termindaten abgeleitet, sie ist also in beiden Kopien dieselbe Zeichenkette — was richtig ist, denn es ist derselbe Termin —, aber die Kopien sind voneinander unabhängig. Es gibt keine Einladung, keine Teilnehmerliste und keinen Weg, auf dem die Änderung der einen Person die andere erreicht.

So funktioniert ein statischer QR-Code

Jeder Code auf dieser Seite ist statisch: Die Nutzlast steht in den schwarzen und weißen Modulen selbst. Beim Lesen wird nichts nachgeschlagen, kein Server von uns ist beteiligt, und kein Abo hält den gedruckten Code am Leben. Dieselbe Eigenschaft ist die Grenze — einmal gedruckt, lässt sich sein Inhalt nicht mehr ändern.

Drei Dinge entscheiden dann, ob ein gedruckter Code gelesen wird: wie viele Bytes die Nutzlast ergeben hat, welche Fehlerkorrekturstufe den Schaden auffängt und wie breit ein einzelnes Modul auf dem Papier wird. Diese Ratgeber gehen jeden Punkt mit Zahlen durch.