Un événement récurrent fait une ligne dans le CSV, pas douze
Publié le 07/09/2026 · 5 min de lecture · Outils fichiers
Daniel Okonkwo — Développeur front-end et rédacteur Tech chez OneKitly
Performance web · Formats de fichiers
Vérifié à partir de 3 sources
L'iCalendar ne range pas les occurrences d'un événement répété. Il range un seul VEVENT et une règle de récurrence — RRULE:FREQ=WEEKLY;BYDAY=TU;COUNT=12 — et c'est chaque agenda qui déplie cette règle à l'écran. En passant le convertisseur sur un fichier contenant quatre VEVENT, dont cette réunion hebdomadaire de douze occurrences, on obtient quatre lignes : les douze mardis ne figurent nulle part dans le fichier. Le CSV a huit colonnes — résumé, début, fin, lieu, description, organisateur, statut, uid — et aucune n'est une règle de récurrence : la série ne survit que par sa première date. S'il te faut une ligne par occurrence, déplie la série dans l'agenda puis exporte le résultat ; s'il te faut garder la règle, reste en iCalendar et sers-toi du visualiseur .ics ou de l'export JSON, qui la transmettent intacte.
Un fichier .ics range une réunion hebdomadaire une seule fois, avec une règle attachée. À l'export CSV tu obtiens une ligne pour toute la série — c'est le fichier qui est honnête, pas le convertisseur qui perd des lignes.
Ce que contient réellement un fichier d'agenda
Ouvre un .ics dans un éditeur de texte : c'est une liste de blocs, chacun de BEGIN:VEVENT à END:VEVENT, portant un début, une fin, un titre et quelques autres propriétés. Un rendez-vous répété, c'est un de ces blocs plus une seule ligne, RRULE, qui dit comment il se répète. Douze points hebdomadaires font douze lignes à l'écran et un bloc sur le disque, et les douze dates sont calculées par ce qui les affiche.
Cette conception est ce qui permet à un agenda de garder un anniversaire répété à l'infini en quelques dizaines d'octets, et ce qui fait que déplacer une seule occurrence d'une série est une propriété à part entière, RECURRENCE-ID, plutôt que la modification d'une ligne. C'est aussi ce qui empêche un convertisseur d'inventer les occurrences sans devenir lui-même un moteur d'agenda — avec les années bissextiles, les sauts d'heure d'été et les dates d'exception que cela suppose.
Les huit colonnes, et ce qui tombe à côté
L'export écrit résumé, début, fin, lieu, description, organisateur, statut et uid — dans cet ordre, une ligne par VEVENT. Un tableur est un rectangle, et tout ce qu'un événement porte qui ne soit pas une valeur unique par événement n'a nulle part où aller : la règle de récurrence, les alarmes, la liste des participants, les pièces jointes, le fuseau dans lequel le début a été écrit. Garde le .ics lui-même si l'un de ces éléments compte ; le CSV sert à lire, trier et compter, pas à archiver.
Obtenir une ligne par occurrence, quand il en faut vraiment une
Demande à l'agenda de faire le dépliage : lui seul connaît tes dates d'exception. Dans Google Agenda, Outlook et Calendrier d'Apple, le chemin fiable est le même : passe en vue liste ou planning sur la période qui t'intéresse, sélectionne la plage, et exporte ou imprime cela — une vue est déjà dépliée, donc ce qui en sort fait une ligne par occurrence. Exporter l'agenda lui-même te redonne la forme compacte, règle comprise.
L'autre sens vaut d'être connu : si tu fabriques un .ics depuis un tableur où tu as déjà écrit chaque date, tu obtiens exactement les événements listés, sans règle attachée. C'est en général ce qu'on veut pour un planning de séances ponctuelles, et c'est une mauvaise façon de ranger une réunion hebdomadaire permanente, qui fera alors douze éléments distincts à déplacer si l'horaire change.
| Événement du fichier | Écrit comme | Lignes dans le CSV | Perdu par le CSV |
|---|---|---|---|
| Réunion d'équipe, 7 sept., 14h00-15h30 Paris | DTSTART;TZID=Europe/Paris | 1 | Le fuseau nommé |
| Noël, journée entière | DTSTART;VALUE=DATE | 1 | Qu'il s'agit d'un jour, pas d'un instant |
| Point hebdomadaire, 12 mardis | RRULE:FREQ=WEEKLY;COUNT=12 | 1, pas 12 | La règle elle-même |
| Ponctuel, titre replié sur deux lignes | Replié selon la RFC 5545 | 1 | Rien |
Questions fréquentes
- Mon CSV a moins de lignes que mon agenda n'affiche. Le convertisseur est-il cassé ?
- Presque certainement pas — compte tes événements répétés. Chacun n'est qu'un seul VEVENT dans le fichier, quel que soit le nombre de fois qu'il s'affiche, si bien qu'un agenda montrant 60 rendez-vous peut très bien être un fichier qui en contient 12. Ouvre le .ics dans le visualiseur et compare son nombre d'événements au nombre de lignes du CSV : s'ils coïncident, rien n'a été perdu à la conversion.
- Puis-je modifier le CSV et le retransformer en agenda ?
- Oui, et cet aller-retour est la raison d'être des deux outils — mais il revient en événements ponctuels. Une série exportée en une ligne puis réimportée fait un rendez-vous unique : la règle n'a jamais été dans le tableur. Modifie librement titres, horaires et lieux là-bas ; refais les récurrences dans l'agenda ensuite.
- Quel outil conserve la règle de récurrence ?
- Le visualiseur .ics et l'export JSON l'affichent tous les deux, et la fusion de fichiers .ics la conserve, parce que ces trois-là restent dans l'iCalendar. Seul le CSV la laisse tomber, et seulement parce qu'une colonne de tableur ne peut pas la porter. Si ton travail est d'inspecter ou de déplacer des agendas plutôt que de les compter, préfère ces trois-là et garde le CSV pour les fois où tu veux vraiment un tableau.
- Mon agenda est-il envoyé quelque part ?
- Non. Le fichier est lu dans ton navigateur et le CSV y est fabriqué ; rien ne quitte la machine. Cela compte plus pour un agenda que pour la plupart des fichiers, parce qu'un agenda est une carte de qui tu rencontres et d'où tu es — exactement le genre de chose qu'on préfère convertir sans la confier à un serveur.
Articles qui pourraient t'intéresser
Tous les guides →Outils similaires
Sources
Tu as repéré une erreur dans cet article ?