Google-Kalender Parser

Mein Ziel war es Termine auf einer Webseite anzuzeigen und diese am Besten komfortabel von unterwegs zu ändern bzw. zu ergänzen. Daraus entstand die Idee, einen Google-Kalender als Grundlage zu nehmen, da sich so ein Kalender einfach auf dem Smartphone sowie am PC im Browser verwalten lässt.

Da die Termine des Kalenders, den man dazu nutzt, ja öffentlich sichtbar sein sollen, muss man den Kalender im Google-Konto unter den Kalendereinstellungen öffentlich machen. Anschließend kann man über die Kalenderadresse (ebenfalls in den Kalendereinstellungen zu finden) auf die ICS-Datei zu greifen.

Hinweis: In der ICS-Datei sind alle Termine enthalten, die jemals in den Kalender eingetragen wurden, d.h. die Dateigröße wächst stetig.

Folgendes Script wandelt die ICS-Datei in ein Array um:

Der Teil vor dem Doppelpunkt einer jeden Zeile ist der Schlüssel des assoziativen Arrays.

Dieses Array lässt sich mit folgenden Zeilen nach dem Startdatum sortieren:

Da hier die Verarbeitung der Daten doch relativ aufwändig ist, nutze ich hier einen Cronjob, der das Script zyklisch automatisch ausführt und die Termine in eine MySQL-Datenbank speichert.

Bei der Verwendung der Termine ist zu beachten, dass bei den Zeitangaben in der ICS-Datei keine Zeitzoneninformationen mitgegeben werden. Deswegen prüfe ich auf Sommer/Winterzeit und passe die Uhrzeit manuell an:

 

Categories: PHP