(* * Copyright (C) 2020 -- 2022 Alban Gruin * * ucs is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * ucs is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with ucs. If not, see . *) let year () = Int.to_string CalendarLib.Calendar.(year @@ now ()) let escape str = Stringext.replace_all_assoc str ["<", "<"; ">", ">"] let common content = {| µCS

µCS

|} ^ content ^ {|
|} let main = common {|

Récupérer un emploi du temps au format ICS

Le format ICS (ou iCalendar) permet d’importer un calendrier dans un agenda électronique.
En savoir plus

Il existe plusieurs logiciels ou services permettant d’utiliser ces fichiers :

N’utilisez pas Google Calendar pour synchroniser un calendrier ICS. Ce service empêche de définir la fréquence de synchronisation ou de forcer une mise à jour et conserve les événements en cache, même si on supprime le calendrier. À cause de cela, il peut y avoir un délai de un jour entre le changement d’une information sur micro celcatsanitizer et sa prise en compte, sans aucun recours possible.

|} let link lnk = let lnk = escape lnk in common @@ {|

Lien de l'emploi du temps

|} ^ lnk ^ {|
|} let select module_id groups = let options = Seq.map (fun group -> " ") groups |> List.of_seq in let num = string_of_int (List.length options) in let options = String.concat "\n" options in common @@ {|

Filtrer par groupe

Sélectionnez les groupes que vous souhaitez voir dans votre emploi du temps. N'en sélectionnez aucun si vous les voulez tous.

|}