Depuis plusieurs années j’utilise le plugin calendrier de Nextcloud synchronisé avec mon téléphone et avec le plugin lighting pour le courielleur Thunderbird.
Je suis donc parfois amener à créer des séries d’évènements comme le calendrier des animations de l’association Henchou Don Lanvaeleg.
Je vous propose dans cet article une modèle de classeur Calc permettant de générer un fichier ICS pouvant être importer dans le calendrier de Thundrbird.

La base de cette macro a été trouvée sur un forum mais malheureusement je n’ai pas noté l’adresse, je ne peux donc pas citer la source originale.

Le format ICAL

Le format ICAL permet d’échanger des informations entre calendriers comme des invitations à des évènements.

La page de Wikipedia explique en détail et avec des exemples ce format, je ne vais pas ici essayer de faire mieux ou recopier le contenu de cette page. Je me permet juste de faire un résumé simplifié et correspondant aux éléments que j’utilise dans mon claseur Calc.

Le format utilisé est celui d’un langage balisé, chaque fichier commence et se termine par des balises :

  • BEGIN:VCALENDAR : balise d’ouverture du fichier de calendrier
  • END:VCALENDAR : balise de fermeture du fichier de calendrier

De la même façon chaque évènement est délimité par des balises d’ouverture et de fermeture :

  • BEGIN:VEVENT
  • END:VEVENT

Il peut y avoir plusieurs évènements dans un fichier ICAL, donc on peut y trouver plusieurs couples de BEGIN:VEVENT/END:VEVENT.

Dans chaque évènement on va trouver les différentes informations de cet évènement :

  • SUMMARY: : le titre de l’évènement
  • DESCRIPTION: la description
  • DTSTART: : la date et l’heure de début de l’évènement
  • DTEND: : la date et l’heure de fin de l’évènement

Le format des éléments DTSTART: et DTEND: est AAAAMMJJThhmmss :

  • AAAA : l’année
  • MM : le mois
  • JJ : le jour
  • T : pour TIME
  • hh : l’heure de début
  • mm : les minutes
  • ss : les secondes

Pour un évènement commençant le 10 février 2019 à 14H30 on aura un DTSTART: de 20190210T143000.

A l’intérieur d’un évènement on pourra rajouter des informations complémentaires comme une ou plusieurs alarmes qui sont dans ce cas délimités par les mots clés BEGIN:VALARM et END:VALARM.

Le classeur Calc

Le classeur Calc permet de décrire les évennements et des macros permettent de générer le fichier ICAL à partir de ces éléments.

les données du classeur

Les données utilisées sont :

  • DateTexte et HeureDebutTexte : information générée automatiquement (j’en ai besoin pour générer les évennement d’un calendrier Jekyll)
  • DateDebut : date de début de l’évennement
  • HeureDebut : heure de début de l’évennement
  • Duree : duree de l’évennement
  • Unité Evt : définit le type de durée de l’évennement ; 2 valeurs sont possibles :
    • h : pour une durée exprimée en heures
    • j : pour une durée exprimée en jours
  • Titre : le titre de lévennement
  • Description : un commentaire décrivant l’évennement
  • Categorie : on peut attribuer une catégorie à l’évennement, certaines application permettent d’afficher les évennements avec des couleurs différentes suivant les catégories
  • Alarm : permet de définir si une alarme sera déclenchée avant l’évennement
  • Unité Alarm : définit l’unité utilisée pour l’alarme. Elle reprend le même fonctionnement que l’unité de l’évennement (h pour heure et j pour jour)
  • Alarm2 et Unité Alarme2 : ces 2 colonnes permettent de définir une deuxième alarme pour un évennement.

Les macros du classeur

Il y a 4 boutons permettant de déclencher différentes macros, 2 de ces macros permettent de générer des fichier ICAL tandis que les 2 autres permettent de générer des fichiers Markdown pouvant être utilisés dans Jekyll.

Calendriers ICAL

Il y a 2 macros pour générer les calendriers ICAL, la première, Evennement ICS qui va générer le fichier ICAL de l’évennement de la ligne sélectionnée. La deuxième, Calendrier ICS va générer le fichier ICAL pour tous les évennements du classeur.
Dans les 2 cas, le résultat est dans le fichier /tmp/exportICS.

Calendrier Jekyll/Markdown

Tout comme pour les calendriers ICAL il y a 2 macros qui génèrent les calendriers au format Markdown. La première Evennement Jekyll va générer un fichier pour un évennement, la deuxième, Calendrier Jekyll, va générer un fichier pour chacun des évennements du ficvhier.
Dans les 2 cas, le résultat est dans le dossier /tmp et le fichiers sont nommés avec la date de l’évennement.

Télécharger le fichier Calendier-ICS-2019-06-10.ods