CampusOffice Kalender synchronisieren

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
  1. Niklas Antworten

    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 Antworten

      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 Antworten

        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 Antworten

          Hey Niklas,
          oh vielen Dank für den Hinweis. Ich habe die Rechte bei mir korrigiert.

          viele Grüße

  2. CBiX Antworten

    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 Antworten

      :D Das ist ja lustig. Da haben wir uns wohl doppelte Arbeit gemacht. An nem CalDav Adapter wäre ich auch interessiert. Gerade das Löschen/Austragen der Events wäre echt ne schicke Funktion.

      Hast du interesse unsre Projekte zu mergen und CalDav ggf. zusammen zu ergänzen?

      gruß

      Steffen

Hinterlasse eine Antwort

Your email address will not be published. Please enter your name, email and a comment.

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>