
Nouvelle ville, nouvelle communauté de jeu. Un site sympa pour les rôlistes francophones est le bois du chet. Il offre, outre un forum, un système de calendriers et de résumés de partie. Le problème c’est que je ne veux pas utiliser encore un système de calendrier différent, je préférerais beaucoup que le système s’intégrasse dans iCal, ce qui veut dire supporter le standard ICS. Ce poste est une petite explication sur le format, et comment exporter les informations du bois du chet en ce format.
Le format ICS est un format texte standard (RFC 2445) pour décrire des calendriers. Un bon point de départ pour ce qui est des références est la page de la wikipedia sur le fomat iCal. Le format supporte aussi d’autres fonctionnalités comme les “TODOS” et des entrées de journal, mais je vais me concentrer sur les données de calendrier. Le texte n’est pas du XML, mais simplement des lignes avec des composants, deux points et une valeur. Chaque fichier peut contenir un ou plusieurs événements. Le fichier doit être encodé en UTF-8.
Prenons comme exemple un évènement futur: la thèse de Jonas.
BEGIN:VCALENDAR
VERSION:2.0
PRODID:boisdechet.org/FR
X-WR-CALNAME;VALUE=TEXT:Le Calendrier du bois du chet
BEGIN:VEVENT
UID:538-boisdechet.org
DTSTART:20070301T130000Z
DURATION:PT2H
SUMMARY:Thèse de Jonas
DESCRIPTION:thèse fixée au 1 mars a 14 à Schwerzenbach Schörenstrasse 16.\nLe titre: "Long-term neuro-behaivoural effects of prenatal dexamethasone in Wistar rats and marmoset monkeys".\nJ'ai le pdf si vous êtes intéressés, mailez moi.
ATTENDEE;CN="Steve Jobs":MAILTO:steve.jobs@apple.com
ATTENDEE;CN="Jane Goodall":MAILTO:jane.goodall@janegoodall.org
LOCATION:Schwerzenbach Schörenstrasse 16
URL:http://boisdechet.org/phpcal/templates/eventshow.php?id=538
END:VEVENT
END:VCALENDAR
Les trois premières lignes sont des méta-données: la première ligne définit le format de fichier, la seconde la version. La troisième ligne définit le producteur du calendrier.
La quatrième ligne donne un texte pour décrire le calendrier, il sera utilisé comme titre par des programmes comme iCal. Le reste du fichier est une séquences d’événements. Chaque évènement commence (surprise) par BEGIN:VEVENT et se termine par END:VEVENT. Le fichier se termine par END:VCALENDAR.
La première ligne de l’événement est définit l’identité de celui-ci. Ici il s’agit de la clef de la base de donnée suivie du nom du site. Vient ensuite la date de début de l’événement. Les dates sont au format année-mois-jour-T-heure-minute-seconde-Z. Le caractère Z indique que les heures sont données en UTC (l’événement est à 14:00, d’où l’écriture 130000Z). Le champ DURATION donne la durée de l’évènement
Le champ SUMMARY donne l’intitulé de l’entrée, suivi de la description plus complète. J’ai simplement pris le texte de l’entrée et remplacé les retours chariots par la séquence d’échappement \n et les virgules par \, (et corrigé l’orthographe, mais bon). Les deux lignes suivantes indiquent les participants, “CN” (Contact Name) donne le nom, MAILTO, l’adresse e-mail. La ligne LOCATION: décrit l’emplacement de l’événement et le champ URL décrit, surprise, l’URL qui décrit l’événement.
L’exemple n’est de loin pas complet, il existe de nombreux autre champs pour définir des alarmes, le status des participants et l’âge du capitaine.
Pour finir quelques liens
- La page d’information de Apple, avec des examples de code en perl et en PHP
- Un example de fichier ics
- iCal Share un site qui regroupe de nombreux calendriers publics: vacances, événements sportifs.