Lecteur de calendriers ICS

Collez un fichier .ics ou choisissez-en un sur le disque, puis cliquez sur Analyser le calendrier : les entrées, les propriétés du calendrier et tous les problèmes trouvés restent dans la page et peuvent être copiés ou téléchargés en JSON.

Fonctionne localement dans votre navigateur
·
Source du calendrier
Events and tasks

Lire un fichier de calendrier sans le téléverser

Collez un fichier .ics dans la zone ou choisissez-en un sur le disque — jusqu’à 5 Mo, la taille s’affiche à côté du nom — puis cliquez sur Analyser le calendrier. Le calendrier est lu dans l’onglet : rien n’est envoyé, et l’export JSON suit la même règle. Le résumé indique le calendrier, son PRODID et sa version et compte les événements, les tâches et les problèmes trouvés ; chaque entrée apparaît en dessous sous forme de fiche avec sa date, son lieu, sa règle RRULE et sa description.

Il suffit que le fichier ressemble à de l’iCalendar. Les lignes sont d’abord dépliées : une ligne de continuation qui commence par une espace ou une tabulation rejoint la précédente. Les noms de propriété peuvent être en minuscules, CN="Doe; John" conserve le point-virgule à l’intérieur du paramètre entre guillemets, et \, \; \n ainsi que \\ sont décodés avant l’affichage d’une valeur. Une ligne que l’analyse ne peut pas séparer en propriété et valeur est signalée avec son numéro au lieu d’interrompre tout le fichier.

  1. Collez le texte du calendrier ou choisissez un fichier .ics local : la zone de dépôt et le champ de fichier chargent le texte dans la zone de saisie.
  2. Cliquez sur Analyser le calendrier. Les événements et les tâches sont comptés, dessinés en fiches et écrits dans le résultat.
  3. Lisez la ligne Problèmes. Un UID, un DTSTART ou un SUMMARY manquant, un DTEND antérieur au DTSTART, une date illisible, un END sans BEGIN et les lignes non séparables sont listés un par un, chacun avec son événement, sa tâche ou son numéro de ligne.
  4. Copier JSON ou Télécharger JSON exporte le résultat sous forme de calendar.json : les propriétés du calendrier, chaque événement et tâche — les composantes imbriquées comme VALARM restent sous components —, la liste des problèmes et le nombre de lignes lues. Sans résultat, les deux boutons le signalent.

Ce que l’analyse vérifie, et où elle s’arrête

Dates, fuseaux horaires et journées entières

Quatre formes de date sont lues : 20260901T090000Z en UTC, 20260901T090000 comme heure locale flottante, 20260901 comme date de journée entière, et une valeur portant un paramètre TZID. Le nom du fuseau est affiché à côté de la valeur — DTSTART;TZID=America/New_York:20260901T090000 s’affiche 2026-09-01 09:00:00 (America/New_York) — et l’heure reste telle qu’elle est écrite, la page n’embarquant aucune base de fuseaux horaires pour la convertir. Une valeur qui n’entre dans aucune de ces formes est signalée dans la ligne Problèmes avec le nom de la propriété et le texte d’origine.

Les journées entières s’affichent comme des dates. Un événement sans DTSTART montre un tiret à la place de la date, et la liste des problèmes nomme le champ manquant.

Événements, tâches et résultat JSON

VEVENT et VTODO sont séparés : la fiche d’un événement porte sa plage de dates, son lieu, sa règle RRULE et sa description, celle d’une tâche sa date d’échéance. Une propriété répétée conserve toutes ses valeurs (deux lignes ATTENDEE sont exportées en tableau), et les composantes imbriquées comme VALARM suivent leur parent sous components dans le JSON.

RRULE est exportée en texte et n’est pas développée : une règle hebdomadaire avec COUNT=6 reste un seul événement, règle comprise.

Où s’arrêtent les vérifications

C’est un lecteur avec une courte liste de contrôles, pas un test de conformité. Il vérifie les champs cités et la forme du fichier ; il ne parcourt pas la RFC 5545 propriété par propriété, ne récupère pas une URL d’abonnement et ne répare pas un fichier abîmé. Ce qu’il ne peut pas lire ou séparer est nommé, avec le numéro de ligne ou l’entrée d’origine, si bien qu’un fichier à moitié analysé peut être corrigé exactement là où il casse.

Outils récents :