Développement- Fichiers ICS et Calendrier – Partie 1

Série de 3 articles sur les fichiers ICS : (1) Définition; (2) Création et Partage; (3) Automatisation Excel > Outlook

Partie 1 : Définition

Qu’est-ce qu’un fichier ICS ? 

Un fichier ICS est un fichier iCalendar. Ce sont des fichiers en texte brut qui incluent des détails d’événement de calendrier comme une description, les heures de début et de fin, l’emplacement, etc. Le format ICS est généralement utilisé pour envoyer des demandes de réunion à des personnes, mais également un moyen populaire pour s’abonner à des calendriers de vacances ou d’anniversaire. Ces fichiers sont utilisés et échangés entre les applications de calendrier et courriels tels que

  • Microsoft Outlook,
  • Mozilla Thunderbird,
  • Le calendrier Apple,
  • Le calendrier Google,
  • … plein d’autres …

En résumé, quand quelqu’un vous envoie une réunion par courriel, il est fort à parier que ce courriel contient un fichier ICS.

Le type MIME utilisé par les données d’iCalendar est « text/calendar » et son format normé les arguments définis. Il est architecturé en blocs de paramètres. Vous trouverez sur cette page des détails techniques;

Voici le squelette du fichier:

BEGIN:VCALENDAR
   BEGIN:VTIMEZONE
      BEGIN:STANDARD
      END:STANDARD
      BEGIN:DAYLIGHT
      END:DAYLIGHT
   END:VTIMEZONE
   BEGIN:VEVENT
      BEGIN:VALARM
      END:VALARM 
   END:VEVENT
END:VCALENDAR

Tous ces champs ne sont pas nécessaires ! Il faut retenir que le langage est formé de blocs déclarés par « BEGIN » et « END » ainsi que des paramètres entre chacun. Pour les dates, plusieurs formats sont acceptés, ainsi, certaines balises seront nécessaires uniquement sur l’utilisation d’un format donné. Pour ma part j’ai choisi le format 2022126T18250000 et la déclaration de changement d’heure. Chacun verra son opportunité !

Pour aller plus loin, voici un fichier type :

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//68600.fr//D6D//ics/ Event Maker
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
BEGIN:DAYLIGHT
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
END:VTIMEZONE
LAST-MODIFIED:20201011T015911Z
TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:VEVENT
ATTENDEE;CN="Papa";RSVP=TRUE:mailto:pipo@gmail.com
CLASS:PRIVATE
CATEGORIES:Important
DTSTAMP:20220823T131634Z
UID:'D6D30194802'
DTSTART;TZID=Europe/Berlin:2022126T18150000
DTEND;TZID=Europe/Berlin:2022126T18250000
SUMMARY;LANGUAGE=en-us:Réunion
DESCRIPTION:Réunion
LOCATION:Collège 
TRANSP:OPAQUE
X-MICROSOFT-CDO-BUSYSTATUS:FREE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:Reminder
TRIGGER:-PT15M
END:VALARM
END:VEVENT
END:VCALENDAR

Ici, on peut voir une invitation pour un évènement le 6 décembre de 18h15 à 18h25, qui sera envoyée à ‘Papa’, catégorisée importante, dont un rappel sera effectué 15 minutes avant et qui ne bloquera pas le calendrier (dans le cadre d’un calendrier visible par autrui via TRANSP:OPAQUE & X-MICROSOFT-CDO-BUSYSTATUS:FREE). La portion du code « BEGIN:VTIMEZONE » définit en outre le changement horaire.

Copiez le code, enregistrez le dans un fichier en extension ‘.ics’, puis cliquez dessus pour l’ouvrir, vous devriez voir votre calendrier se remplir d’un nouveau rendez-vous – enfin, si votre appareil possède un des logiciels précédemment évoqué.

Vous pouvez en outre changer les dates de début, fin, et divers textes pour adapter le calendrier à vos besoin… c’est ce que j’ai fait ici – https://www.68600.fr/D6D/ics/

Maintenant que nous avons la base > Suite Partie 2