Campus Office ist unser Studienplaner an der RWTH. Über ihn stellen wir uns unseren Stundenplan zusammen und melden uns zu Prüfungen an. Campus Office besitzt auch einen einfachen Kalender, der alle Termine des aktuellen Semesters individuell für jeden Studenten zusammenfasst. Glücklicherweise kann dieser Kalender auch im iCalendar-Format exportiert werden.
Leider ist jedoch keine automatische Synchronisation mit Google, Outlook & co möglich, da sich jeder Student zuvor mit seinen Daten angemeldet haben muss. Um dieses Problem zu umgehen habe ich ein kleines Skript geschrieben, welches als Proxy fungiert und diese Anmeldung übernimmt.
Folgende URL kann beispielsweise im Google-Kalender abonniert werden:
https://cocal.0l.de/?u=[matrikelnr]&p=[passwort]
Alternativ kann man sich über das Frontend das Passwort in der URL auch noch etwas verscheiern lassen:
http://cocal.0l.de/?hash=[base64_encode(matrikelnr + ':' + passwort)] => http://cocal.0l.de?hash=MzA0OTU3OmFzZGZzZGY=
So habe ich nun alle meine Uni-Vorlesungen, Übungen und Klausuren in meinem Android-Smartphone ohne mich jemals wieder um die Synchronisierung kümmern zu müssen.
Um sich mit seinem Smartphone auch direkt zur nächsten Vorlesung routen lassen zu können, habe ich das Skript etwas erweitert. Es übersetzt alls Hörsaal Nummern in die dazugehörige Adresse.
Bitte seid euch bewusst, dass ihr eure Passwort an meinen Server sendet! Ich habe das Logging für diese Anfragen zwar deaktiviert, sodass ich eure Passworter nicht speichere. Technisch wäre es für einen Angreifer (oder mich) trotzdem möglich eure Passwörter auszuspähen.
Wer dieses Risiko lieber vermeiden möchte, sollte das Skript auf einem eigenen Webspace laufen lassen. Es ist hier in meinem git-Repository verfügbar. Über Anregungen und Verbesserungen freue ich mich wie immer ![]()
6 Responses to CampusOffice Kalender synchronisieren
Niklas 30. September 2012
Hey,
habe dein tolles Script mal ausprobiert. Funktioniert auch fast perfekt.
Es scheint nur, als gäbe es ein Problem mit dem Eintragen neuer gecrawlter Adressen in deine Datenbank, denn das erzeugte iCal Dokument enthielt mehrfach diese zusätzliche Zeile:
Warning: sqlite_exec(): attempt to write a readonly database in /var/www/nulll/tools/snippets/php/cocal.php on line 63
Anscheinend liegt ein Problem mit Schreibrechten vor.
Gruß
Steffen Vogel 3. Oktober 2012
Hallo Niklas
Ja da liegt in der Tat ein Problem mit den Zugriffsrechten vor. Das ist aber eigentlich kein Fehler des Skriptes. Du musst einfach die entsprechenden Rechte auf deinem Webspace setzen. Wie das genau geht hängt von deinem Provider/Server ab. Die Datei ‘cocal.db’ sollte auf jeden Fall beschreibbar sein.
Niklas 3. Oktober 2012
Danke für die Antwort. Nur kurz als Anmerkung: Ich hatte es gar nicht auf meinem eigenen Webspace ausprobiert, sondern mit dem von dir angegebenen Link. Wie auch immer, vielen Dank für das Teilen des Scripts.
Steffen Vogel 7. Oktober 2012
Hey Niklas,
oh vielen Dank für den Hinweis. Ich habe die Rechte bei mir korrigiert.
viele Grüße
CBiX 13. April 2013
Hey, ich hatte letztes Jahr scheinbar die selbe Idee: https://github.com/CBiX/campusTools
Wenn ich mal dazu komme, programmier ich auch noch einen kompletten CalDAV-Adapter, das wird aber etwas aufwändiger … :-/
Steffen Vogel 15. April 2013
Hast du interesse unsre Projekte zu mergen und CalDav ggf. zusammen zu ergänzen?
gruß
Steffen