Wednesday

02

December 2020

Agenda des Mathématiques

Tous les événements de la communauté mathématique française

iCalendar

Ce que vous devez faire

  • Lire cette page
  • Créer votre fichier ICS
  • Valider votre fichier ICS sur le site https://icalendar.org/validator.html
  • Ne laissez pas des erreurs d’encodage (p.e. SUMMARY:Titre à préciser)
  • Si aucune erreur, ajouter votre séminaire
  • Une fois ajouté sur le site, vous pourrez lancer une collecte afin de vérifier vos données qui seront reprises au bout de 24h au plus sur le site du Portail des Maths

Format

L’échange de données entre les fournisseurs/providers (en général les laboratoires) et le serveur, se fera grâce à un fichier iCalendar.
Un fichier iCalendar est un fichier lisible (human-readable), dont le format est expliqué dans la RFC5545. Ce fichier iCalendar peut être lourd à générer si on n’utilise pas une librairie. [1]

Il est à noter que :

  • le texte doit être en UTF-8
  • le séparateur de ligne doit être CRLF et non LF
  • une ligne du fichier ne devrait pas dépasser 75 octets (voir la technique de folding proposée dans la RFC) Il y a donc quelques contraintes, mais l’utilisation d’une librairie telle que iCalCreator permet de ne pas s’en préoccuper.

Un fichier iCal est organisé en composants, propriétés et valeurs. Le tableau suivant donne les choix que nous avons faits pour représenter les évènements de la communauté mathématique.

propriété valeur
PRODID voir exemples
X-WR-TIMEZONE Europe/Paris
X-WR-CALNAME titre du séminaire
X-WR-RELCALID identifiant du séminaire dans le labo
SUMMARY nom de l’orateur + titre de l’exposé
UID id unique local (RFC5545, §3.8.4.7) le fournisseur doit s’assurer de son unicité
DTSTART date début exposé
DESCRIPTION (optionnel) résumé de l’exposé
DTEND (optionnel : si omis, DTSTART + 1h) date fin exposé
LOCATION (optionnel) lieu (salle, bâtiment)
CONTACT (optionnel) responsable du séminaire
ORGANIZER (optionnel) mail responsable du séminaire
ATTENDEE format particulier (CN=Nom orateur:mailto:no-reply@math.cnrs.fr), voir exemple ci-dessous avec la lib iCalcreator
CATEGORIES (optionnel) code AMS (thème du séminaire)
URL (optionnel)
STATUS (optionnel) CONFIRMED
COMMENT (optionnel) Notes de dernières minutes

Conseils

Le plus simple est de créer un fichier par séminaire, pour faciliter le tri et le rangement en catégorie sur le serveur (non obligatoire).
Pour ATTENDEE, qui doit être au format URI, on peut soit mettre une adresse comme no-reply@math.cnrs.fr, soit l’email de l’orateur avec son accord. Cet email n’apparaitra pas dans le portail des Maths.

Une fois le fichier généré, il faut le valider via iCalendar Validator

Des exemples sont proposés à la fin de cet article. Pour le type mime, il est recommandé d’utiliser :
« Content-Type : text/calendar »

Il existe d’autres outils dans la communauté.


Spip + squelette kitcnrs + plugin seminaire

Depuis octobre 2011, le squelette kitcnrs intègre le plugin seminaire qui produit, entre autres, des fichiers iCal. Le principe est d’avoir des évènements associés à des articles (http://www.spip-contrib.net/Plugin-...).
Pour nos labos, cela signifie qu’un séminaire est un article, et que les exposés de ce séminaire sont des évènements.

Ci-dessous, un exemple obtenu sur le site de Montpellier :

    BEGIN:VCALENDAR
    VERSION:2.0
    BEGIN:VEVENT
    DTSTART;TZID=Europe/Paris:20110915T111500
    DTEND;TZID=Europe/Paris:20110915T121500
    SUMMARY:Sém. AGATA - Vezzosi
    LOCATION:salle 431
    STATUS:CONFIRMED
    DESCRIPTION:Séminaire Algèbre Géométrie Algébrique Topologie Algébrique - \
        Gabriele Vezzosi (Université de Florence)Derived algebraic geometry and\
        obstrucction theories - with applications to stable maps to a K3 surface
    CATEGORIES:séminaire
    END:VEVENT
    END:VCALENDAR
          

librairie php

Vous pouvez utiliser iCalcreator http://kigkonsult.se/iCalcreator et la documentation ici http://kigkonsult.se/iCalcreator/do...
Avec cette librairie, il est facile (en tout cas plus facile que de le générer depuis rien) de créer un fichier iCalendar.