Dit script synchroniseert een Zermelo-rooster met een Google Agenda. Het is specifiek geschreven om veelvoorkomende fouten in rooster-synchronisaties op te lossen, zoals dubbele afspraken bij wijzigingen en het achterblijven van vervallen lessen.
- Synchronisatie op basis van UID: Elke afspraak wordt gekoppeld aan een uniek ID van Zermelo. Hierdoor worden wijzigingen in tijd of locatie doorgevoerd in de bestaande afspraak in plaats van een nieuwe aan te maken.
- Verwijderen van uitval: Lessen die in Zermelo gemarkeerd zijn als uitval (
[x]) worden direct uit de Google Agenda verwijderd. - Opschonen van verwijderde lessen: Lessen die volledig uit het Zermelo-rooster verdwijnen worden gedetecteerd en verwijderd uit de agenda.
- Visuele cues: Belangrijke afspraken (
[!]) krijgen een rode kleur. Titels worden geformatteerd voor betere leesbaarheid op mobiele apparaten.
-
Configuratiegegevens verzamelen:
- Kopieer de iCal-URL vanuit het Zermelo-portaal.
- Zoek het Agenda-ID van de gewenste Google Agenda op (te vinden onder 'Instellingen en delen' in Google Calendar).
-
Script aanmaken:
- Open Google Apps Script.
- Maak een nieuw project en vervang de inhoud van
Code.gsdoor de code uit deze repository. - Vul de variabelen
ICAL_URLenTARGET_CALENDAR_IDin met je eigen gegevens.
-
Automatisering instellen:
- Ga in het Apps Script menu naar Triggers (klok-icoon).
- Voeg een trigger toe voor de functie
syncSchoolCalendar. - Kies als bron 'Tijdsgestuurd' en stel een gewenste interval in (bijvoorbeeld elk uur).
In het script wordt een zoekbereik gedefinieerd:
const startSearch = new Date();
startSearch.setDate(startSearch.getDate() - 2);
const endSearch = new Date();
endSearch.setDate(startSearch.getDate() + 28); Let op: Het bereik in de Google Agenda (endSearch) moet altijd groter zijn dan de periode die de Zermelo-link ophaalt (endWeekOffset). Als het script niet ver genoeg vooruit kijkt, kan het bestaande afspraken in de toekomst niet herkennen, wat resulteert in dubbele items.
De iCal-URL bevat een persoonlijk access_token. Houd deze prive. Indien de token publiek bekend is geraakt, dient er in het Zermelo-portaal een nieuwe koppeling te worden gegenereerd om de oude token onbruikbaar te maken.
Dit project is een onafhankelijke tool en is op geen enkele wijze verbonden met, geautoriseerd door, of goedgekeurd door Zermelo Software B.V. of Google LLC. Het gebruik van dit script is op eigen risico; de auteur is niet verantwoordelijk voor eventuele fouten in de agenda, gemiste afspraken of verlies van gegevens.