Comment l’outil lit et écrit votre fichier d’emploi du temps
La plupart des logiciels emploi du temps peuvent exporter l’emploi du temps d’un établissement sous forme de fichiers calendrier, souvent un par classe, enseignant ou salle, pour que les cours apparaissent dans Google Calendar ou Outlook. Un tel fichier est un fichier texte au format iCalendar (RFC 5545). Chaque événement est un bloc VEVENT avec un début (DTSTART), une fin (DTEND ou DURATION), un titre (SUMMARY) et des champs facultatifs comme LOCATION, RESOURCES, ATTENDEE, ORGANIZER et CATEGORIES. L’outil lit directement ces champs. Il ne devine jamais un enseignant ou une salle à partir des mots d’un titre.
Les événements récurrents portent une règle (RRULE) au lieu d’une liste de dates. L’outil développe les règles quotidiennes, hebdomadaires, mensuelles et annuelles en occurrences datées, dans le fuseau horaire propre à l’événement : un cours de 09:00 reste à 09:00 après le changement d’heure. Les dates listées dans EXDATE sont exclues, et une occurrence déplacée (un second VEVENT avec le même UID et un RECURRENCE-ID) remplace la date d’origine.
Un conflit, ce sont deux événements dont les horaires se chevauchent et qui citent le même enseignant, la même salle ou la même classe dans RESOURCES, ou le même participant. Un événement sans RESOURCES occupe à la place son LOCATION. Les événements sur toute la journée, les événements annulés et ceux marqués comme disponibles ne comptent pas. Un même cours écrit plusieurs fois, une fois par classe ou par calendrier d’enseignant comme l’exportent les logiciels emploi du temps, ne compte qu’une fois : des copies avec les mêmes horaires et le même cours (ou le même titre) ne sont jamais en conflit entre elles.
Quand vous enregistrez une modification, seules les lignes modifiées sont réécrites. Toutes les autres lignes du fichier, y compris les rappels, les définitions de fuseau horaire et les champs personnalisés X-, sont réécrites exactement telles qu’elles ont été lues. L’événement modifié reçoit un SEQUENCE plus élevé et un nouveau DTSTAMP. C’est ainsi que la norme iCalendar signale une version révisée du même événement. Pour un événement récurrent, vous choisissez la portée, comme dans Google Calendar ou Outlook : cet événement (une exception avec RECURRENCE-ID), cet événement et les suivants (la série se termine par UNTIL et une nouvelle série commence), ou tous les événements (la série est déplacée, et ses dates d’exception avec elle).