Générateur de QR code d'événement pour agenda
100 % privé et local — Vos données ne quittent jamais votre navigateur. Ces QR codes sont permanents et n'expireront jamais.
Réglages Événement
Design
Ajouter un logo central
L'image est lue dans cette page et intégrée au code sous la forme d'une URL data:. Elle n'est pas téléversée, et elle reste dans le fichier que vous téléchargez.
Plus d'options de design
La moitié sombre du code. Gardez-la nettement moins claire que le fond.
Couvre la zone de silence comme les espaces entre les modules. Un fond transparent le retire du fichier, donc rien n'est dessiné avec.
Contraste 11.5:1 entre les modules et le fond.
Le PNG et le WebP conservent un canal alpha ; le SVG omet simplement le rectangle de fond. Ce sur quoi le code est posé devient la moitié claire du contraste.
Un dégradé ne remplit que les modules sombres. Son extrémité la plus claire fixe le contraste que le lecteur obtient réellement, donc les deux extrémités doivent rester sombres.
La seconde couleur, utilisée seulement quand un dégradé est sélectionné. Son contraste est mesuré au même titre que celui de la première.
Degrés dans le sens horaire à partir d'un balayage de gauche à droite. Un dégradé radial se propage du centre vers l'extérieur, donc l'angle ne s'applique qu'à un dégradé linéaire.
Les formes arrondies couvrent moins chaque cellule. Le centre reste couvert, et c'est là que le décodeur échantillonne, mais une petite impression d'un code dense se lit plus sûrement en carrés.
L'anneau des trois motifs de repérage.
L'œil à l'intérieur de chaque motif de repérage.
La marge vide autour du code, mesurée en modules. 4 est le minimum spécifié.
Une correction plus élevée survit à plus de dégâts et coûte de la capacité, donc le même contenu produit un symbole plus dense.
Un logo occupe le centre et maintient le niveau sur H. Sa limite de largeur suit le symbole : 14% sur le plus petit code, 30% sur un code dense.
Aperçu en direct et export
Saisissez le nom de l'événement. Il devient le titre de l'entrée d'agenda.
Export
Matriciel, écrans
Complétez le formulaire pour activer les téléchargements.
Taille d'export et texte encodé
- Charge utile
- Rien d'encodé
- Symbole
- Non construit
- Correction
- M
En attente de saisie
Construisez un événement iCalendar complet et imprimez-le. La charge utile est le contenu du .ics lui-même, donc le téléphone peut créer l'entrée sans télécharger le moindre fichier.
Quand quelqu'un le scanne
La plupart des applications d'appareil photo et de scan actuelles reconnaissent l'en-tête BEGIN:VCALENDAR et proposent d'ajouter l'événement à l'agenda par défaut, tandis que certains lecteurs anciens ou minimalistes se contentent d'afficher le texte.
La charge utile iCalendar, exactement
Le code porte un objet RFC 5545 complet, pas un lien vers un tel objet. Il s'ouvre par BEGIN:VCALENDAR, porte VERSION:2.0 et un PRODID identifiant ce générateur, enveloppe un unique VEVENT, et se referme par END:VCALENDAR. À l'intérieur de l'événement se trouvent UID et DTSTAMP, que la spécification exige, aux côtés de DTSTART, DTEND, SUMMARY et de ceux de LOCATION, DESCRIPTION et URL que vous avez remplis.
Chaque ligne de contenu se termine par un retour chariot puis un saut de ligne, dans cet ordre. Les analyseurs sont stricts là-dessus : un objet qui n'utilise que des sauts de ligne nus est précisément ce qui fait échouer l'import d'un événement par ailleurs correct. Les lignes de plus de 75 octets sont pliées en insérant CRLF suivi d'une seule espace, et les lecteurs les recollent avant l'analyse, ce qui explique qu'une longue description ne casse pas l'objet.
Parce que l'événement entier vit dans le motif, le téléphone n'a besoin d'aucun réseau pour créer l'entrée. Cela signifie aussi que l'événement est figé : changer le lieu plus tard impose de générer et d'imprimer un nouveau code, puisqu'il n'y a rien à mettre à jour.
Heure locale flottante contre UTC
En mode flottant, DTSTART s'écrit YYYYMMDDTHHMMSS sans Z final et sans paramètre TZID. La RFC 5545 appelle cela une heure flottante, et cela veut dire exactement ce que cela dit : 19:00 est 19:00 sur l'appareil qui l'ouvre, quel que soit l'endroit où il se trouve. Pour un concert, un stand de marché ou une soirée portes ouvertes d'école, c'est presque toujours ce que vous voulez, parce que tous ceux qui lisent l'affiche se tiennent dans le même fuseau horaire que le lieu.
En mode UTC, la même propriété s'écrit YYYYMMDDTHHMMSSZ et le Z final fixe l'instant. Chaque appareil le convertit en heure locale à l'import, donc un événement fixé à 14:00 UTC s'affiche à 15:00 à Paris et à 09:00 à New York. C'est le bon choix pour un webinaire et le mauvais pour une fête de village.
Un fuseau nommé — DTSTART;TZID=Europe/Paris — est la troisième possibilité de la spécification, et cet outil ne la propose pas. Le faire correctement impose d'intégrer un composant VTIMEZONE avec l'ensemble des règles de transition d'heure d'été, ce qui ajoute plusieurs centaines d'octets à une charge utile qui doit tenir dans un seul symbole, et un objet qui référence un TZID qu'il ne définit pas est invalide. Le flottant et l'UTC couvrent les cas de l'affiche imprimée sans ce coût.
Échappement, événements sur la journée entière et taille
Les valeurs texte sont échappées comme la spécification l'exige avant d'entrer dans la charge utile. Les barres obliques inverses sont échappées en premier, puis les points-virgules et les virgules, puis les sauts de ligne ; échapper dans un autre ordre double-échappe les barres obliques inverses que l'on vient d'introduire. Les deux-points à l'intérieur d'une valeur texte sont laissés tels quels — la RFC 5545 interdit explicitement de les échapper, alors que l'ancienne RFC 2445 l'exigeait, ce qui explique que certains générateurs écrits à la main se trompent encore là-dessus.
Un événement sur la journée entière utilise la forme date : DTSTART;VALUE=DATE:20260904. Son DTEND est exclusif, donc une journée unique le 4 septembre s'écrit avec DTEND;VALUE=DATE:20260905. Se tromper là-dessus produit un événement qui couvre un jour de trop ou un jour de moins.
La taille est la vraie limite ici. Un symbole QR contient au plus 2 953 octets au niveau de correction le plus bas, et l'enveloppe de l'agenda en dépense à elle seule environ deux cents avant que votre texte ne commence. Une longue description pousse le symbole vers une version supérieure aux modules plus petits, ce qui exige soit une impression plus grande, soit un scan de plus près. L'aperçu affiche la version à mesure que vous tapez, alors regardez-la bouger.
- La barre oblique inverse devient \\, le point-virgule devient \;, la virgule devient \,
- Un saut de ligne devient les deux caractères \n
- Les deux-points ne sont jamais échappés dans les valeurs texte de la RFC 5545
Questions et réponses
Pourquoi mon téléphone affiche-t-il un mur de texte au lieu d'une invite d'ajout à l'agenda ?
Le lecteur n'a reconnu aucune URL et s'est rabattu sur l'affichage de la charge utile. La plupart des applications d'appareil photo actuelles détectent l'en-tête BEGIN:VCALENDAR et proposent de créer l'événement, mais un lecteur minimaliste peut ne traiter que les liens. Une application de scan dédiée, ou l'appareil photo d'origine du téléphone plutôt qu'une application tierce, règle en général le problème.
Un seul code peut-il porter un événement récurrent ?
Pas avec cet outil. La RFC 5545 exprime la répétition avec une propriété RRULE, et si la syntaxe est compacte, les combinaisons d'intervalle, de jour de semaine, de nombre d'occurrences et de dates d'exception réclament un formulaire à elles seules pour être saisies sans erreur. Cet outil construit un événement, avec un début et une fin.
L'événement portera-t-il un rappel ou une alarme ?
Non. Un composant VALARM ajouterait des octets à chaque code pour servir une préférence que la personne qui scanne veut d'ordinaire régler elle-même, et le comportement de rappel par défaut diffère nettement d'une application d'agenda à l'autre. L'entrée arrive dans l'agenda et hérite du réglage par défaut de cet agenda.
Que se passe-t-il si deux personnes scannent le même code imprimé ?
Chacune obtient une entrée dans son propre agenda. L'UID est dérivé des détails de l'événement, donc c'est la même chaîne dans les deux copies — ce qui est correct, puisqu'il s'agit du même événement — mais les copies sont indépendantes. Il n'y a ni invitation, ni liste de participants, ni moyen pour la modification de l'un d'atteindre qui que ce soit.
Comment fonctionne un QR code statique
Chaque code de ce site est statique : la charge utile est écrite dans les modules noirs et blancs eux-mêmes. Rien n'est interrogé à la lecture, aucun de nos serveurs n'intervient, et aucun abonnement ne maintient le code imprimé en vie. Cette même propriété est la limite — une fois imprimé, ce qu'il contient ne peut plus être changé.
Trois choses décident ensuite si un code imprimé se lit : le nombre d'octets de la charge utile, le niveau de correction qui absorbe les dégâts, et la largeur d'un seul module sur le papier. Ces guides passent en revue chacune d'elles, chiffres à l'appui.