Generatore di QR code per eventi in calendario
100% privato e locale — i tuoi dati non escono mai dal tuo browser. Questi QR code sono permanenti e non scadranno mai.
Impostazioni Evento calendario
Design
Aggiungi un logo centrale
L'immagine viene letta in questa pagina e incorporata nel codice come data: URL. Non viene caricata da nessuna parte e resta dentro il file che scarichi.
Altre opzioni di design
La metà scura del codice. Tienilo ben al di sotto dello sfondo come luminosità.
Copre la zona di quiete oltre agli spazi tra i moduli. Uno sfondo trasparente lo lascia fuori dal file, quindi con esso non viene disegnato nulla.
Contrasto 11.5:1 tra i moduli e lo sfondo.
PNG e WebP mantengono un canale alfa; l'SVG semplicemente omette il rettangolo di sfondo. Qualunque cosa stia sotto il codice diventa la metà chiara del contrasto.
Un gradiente riempie solo i moduli scuri. È il suo estremo più chiaro a fissare il contrasto che un lettore ottiene davvero, quindi entrambi gli estremi devono restare scuri.
Il secondo colore, usato solo quando è selezionato un gradiente. Il contrasto viene misurato su di esso come sul primo.
Gradi in senso orario a partire da una sfumatura da sinistra a destra. Un gradiente radiale si espande dal centro verso l'esterno, quindi l'angolo vale solo per quello lineare.
Le forme arrotondate coprono meno di ogni cella. Il centro resta coperto, ed è lì che un decoder campiona, ma una stampa piccola di un codice denso si legge in modo più affidabile con i quadrati.
L'anello dei tre pattern di ricerca.
L'occhio dentro ogni pattern di ricerca.
Il margine vuoto attorno al codice, misurato in moduli. 4 è il minimo previsto dalla specifica.
Un recupero più alto sopporta più danni e costa capacità, quindi lo stesso contenuto produce un simbolo più denso.
Un logo sta al centro e tiene il livello su H. Il suo limite di larghezza segue il simbolo: 14% sul codice più piccolo, 30% su uno denso.
Anteprima live ed esportazione
Inserisci il nome dell'evento. Diventa il titolo della voce di calendario.
Esporta
Raster, per schermi
Completa il modulo per abilitare i download.
Dimensione di esportazione e testo codificato
- Payload
- Nulla ancora codificato
- Simbolo
- Non ancora costruito
- Recupero
- M
In attesa di dati
Costruisci un evento iCalendar completo e stampalo. Il payload è il contenuto .ics stesso, quindi il telefono può creare la voce senza scaricare alcun file da nessuna parte.
Quando qualcuno lo scansiona
La maggior parte delle app fotocamera e di scansione attuali riconosce l'intestazione BEGIN:VCALENDAR e propone di aggiungere l'evento al calendario predefinito, mentre alcuni scanner più vecchi o minimali si limitano a mostrare il testo così com'è.
Il payload iCalendar, per esteso
Il codice porta un oggetto RFC 5545 completo, non un link a uno. Si apre con BEGIN:VCALENDAR, porta VERSION:2.0 e un PRODID che identifica questo generatore, racchiude un solo VEVENT e si chiude con END:VCALENDAR. Dentro l'evento stanno UID e DTSTAMP, che la specifica richiede, accanto a DTSTART, DTEND, SUMMARY e a quelli fra LOCATION, DESCRIPTION e URL che hai compilato.
Ogni riga di contenuto finisce con un ritorno a capo e un avanzamento riga, in quest'ordine. I parser sono severi su questo: è un oggetto che usa soli avanzamenti riga a far fallire l'importazione di un evento per il resto corretto. Le righe più lunghe di 75 ottetti vengono ripiegate inserendo CRLF seguito da un singolo spazio, e i lettori le ricongiungono prima di analizzarle, ed è per questo che una descrizione lunga non rompe l'oggetto.
Poiché l'intero evento vive nel disegno, il telefono non ha bisogno di rete per creare la voce. Significa anche che l'evento è congelato: cambiare la sede in seguito vuol dire generare e stampare un codice nuovo, perché non c'è nulla da aggiornare.
Ora locale fluttuante contro UTC
In modalità fluttuante DTSTART si scrive come YYYYMMDDTHHMMSS senza la Z finale e senza parametro TZID. L'RFC 5545 la chiama ora fluttuante, e significa esattamente questo: le 19:00 sono le 19:00 su qualunque dispositivo la apra, ovunque quel dispositivo si trovi. Per un concerto, un banco al mercato o un open day di una scuola è quasi sempre ciò che serve, perché chi legge il manifesto sta nello stesso fuso orario della sede.
In modalità UTC la stessa proprietà si scrive come YYYYMMDDTHHMMSSZ e la Z finale fissa l'istante. Ogni dispositivo la converte in ora locale all'importazione, quindi un evento fissato per le 14:00 UTC compare come le 15:00 a Roma e le 09:00 a New York. È la scelta giusta per un webinar e quella sbagliata per una sagra di paese.
Un fuso con nome — DTSTART;TZID=Europe/Rome — è la terza possibilità della specifica, e questo strumento non la offre. Farlo come si deve richiede di incorporare un componente VTIMEZONE con l'insieme completo delle regole di transizione dell'ora legale, che aggiunge diverse centinaia di byte a un payload che deve entrare in un solo simbolo, e un oggetto che fa riferimento a un TZID che non definisce non è valido. Fluttuante e UTC coprono i casi da manifesto stampato senza quel costo.
Protezione dei caratteri, eventi di intera giornata e dimensione
I valori di testo vengono protetti come richiede la specifica prima di entrare nel payload. Prima le barre rovesciate, poi i punti e virgola e le virgole, poi gli a capo; proteggerli in un altro ordine protegge due volte le barre rovesciate appena introdotte. I due punti dentro un valore di testo restano intatti — l'RFC 5545 vieta esplicitamente di proteggerli, mentre il più vecchio RFC 2445 lo richiedeva, ed è per questo che alcuni generatori scritti a mano sbagliano ancora qui.
Un evento di intera giornata usa la forma data: DTSTART;VALUE=DATE:20260904. Il suo DTEND è esclusivo, quindi un singolo giorno il 4 settembre si scrive con DTEND;VALUE=DATE:20260905. Sbagliare questo è ciò che produce un evento lungo un giorno di meno o un giorno di più.
Il limite pratico qui è la dimensione. Un simbolo QR contiene al massimo 2.953 byte al livello di recupero più basso, e il solo involucro del calendario ne spende all'incirca duecento prima che cominci il tuo testo. Una descrizione lunga spinge il simbolo a una versione più alta con moduli più piccoli, che richiede una stampa più grande o una scansione più ravvicinata. L'anteprima mostra la versione mentre scrivi, quindi guardala muoversi.
- La barra rovesciata diventa \\, il punto e virgola diventa \;, la virgola diventa \,
- Un a capo diventa i due caratteri \n
- I due punti non vanno mai protetti nei valori di testo dell'RFC 5545
Domande e risposte
Perché il telefono mostra un muro di testo invece di propormi di aggiungere l'evento al calendario?
Lo scanner non ha riconosciuto alcun URL ed è ripiegato sul mostrare il payload. La maggior parte delle app fotocamera attuali rileva l'intestazione BEGIN:VCALENDAR e propone di creare l'evento, ma uno scanner minimale può gestire solo i link. Un'app di scansione QR dedicata, o la fotocamera del telefono stesso invece di una di terze parti, di solito risolve la cosa.
Un solo codice può contenere un evento ricorrente?
Non con questo strumento. L'RFC 5545 esprime la ripetizione con la proprietà RRULE e, per quanto la sintassi sia compatta, le combinazioni di intervallo, giorno della settimana, conteggio e date di eccezione hanno bisogno di un modulo tutto loro per essere inserite senza errori. Questo strumento costruisce un evento con un inizio e una fine.
L'evento porterà con sé un promemoria o una sveglia?
No. Un componente VALARM aggiungerebbe byte a ogni codice per servire una preferenza che di solito chi scansiona vuole impostare da sé, e il comportamento predefinito dei promemoria varia parecchio fra le app di calendario. La voce atterra nel calendario ed eredita il valore predefinito che quel calendario applica.
Che cosa succede se due persone scansionano lo stesso codice stampato?
Ognuna ottiene una voce nel proprio calendario. L'UID è derivato dai dettagli dell'evento, quindi è la stessa stringa in entrambe le copie — il che è corretto, dato che è lo stesso evento — ma le copie sono indipendenti. Non c'è alcun invito, alcun elenco di partecipanti e alcun modo perché la modifica di una persona raggiunga qualcun altro.
Come funziona un QR code statico
Ogni codice su questo sito è statico: il payload è scritto nei moduli bianchi e neri stessi. Alla lettura non viene consultato nulla, nessun nostro server entra in gioco e nessun abbonamento tiene in piedi il codice stampato. La stessa proprietà è anche il limite: una volta stampato, ciò che contiene non si può cambiare.
A quel punto tre cose decidono se un codice stampato si legge: quanti byte è venuto a pesare il payload, quale livello di recupero assorbe i danni e quanto risulta largo un singolo modulo sulla carta. Queste guide affrontano ciascuna di esse con i numeri.