iis-ics

Bei dem Versuch, eine ICS-Internetkalenderdatei mit dem IIS zu hosten und den Kalender mit mobilen Geräten abonnieren zu können, gibt es einige kleine Hürden, die einen an den Rande eines Nervenzusammenbruchs treiben können.

 

 

 

Im Rahmen einer von mir durchgeführten konzeptionellen Softwareberatung wollte ich unter einer Site im Internet Information Server eine ICS-Datei hosten. Die ICS Datei sollte von einem Drittprogramm generiert werden und Kalenderdaten für einen Mitarbeiter beinhalten. Im Anfangs- und Qualifikationsstadium legte ich keinen Wert auf eine vorgeschaltete Authentifizierung und wollte somit jedem der die URL des Kalenders kennt Zugriff auf das Kalenderabonnement geben.

Wenn man nach diesem Sachverhalt im Internet sucht, stößt man unweigerlich auf die Abkürzungen CalDAV und WebDAV. Obwohl die sehr nah mit unserer Thematik zusammenhängen, brauchen wir diese erstmal überhaupt nicht. Weil: Wir wollen nur hosten und mobil lesend auf eine ICS-Datei zugreifen. Würden wir in dieser ICS-Datei später seitens des mobilen Nutzers auch Änderungen vornehmen wollen, dann und nur dann, bräuchten wir tatsächlich CalDAV und WebDAV. Da unser Drittsystem aber die Daten generiert (bzw. mein konzeptionierter Adapter diese Daten erstellt) brauchen wir uns um Schreibrechte auf der Clientseite garkeine Gedanken machen.

Also überspringt einfach sämtliche schlauen Ratschläge zum Thema CalDAV und WebDAV.

Zur Bereitstellung der Datei habe ich eine Site im IIS angelegt. In ein Verzeichnis darin dann die bereitgestellte ICS-Datei abgelegt.

Durch die Bindungen habe ich die Site einer Subdomain zugewiesen und dachte nun: „Prima, jetzt den Link zur gehosteten ICS-Datei per Mail verschicken, dann kann der abonniert werden.“.

Fehlanzeige. Das iPhone und andere Endgeräte quittieren beim Versuch der Verbindung mit der Meldung „Der Kalender XYZ kann nicht abonniert werden.“

Schuld daran ist nicht etwa ein Berechtigungsproblem wie zuerst vermutet, sondern eine im Standard falsch hinterlegte Einstellung in den MIME-Typen des IIS Servers. Also klicken wir auf die eben angelegte Site im IIS und wechseln auf die Schaltfläche für die MIME-Typen.

mime types ics iis

In der nun erscheinenden Liste suchen wir den Eintrag für die Datei Erweiterung ICS. Die hinterlegte Eigenschaft „application/octet-stream“ ist schlichtweg falsch. Das Internet schlägt bei der Websuche noch mehr falsche, alternative Einträge vor. Der einzig richtige Eintrag für die ICS-Formate ist hier „text/calendar“.

Et Voilà: Wenn wir den Link nun erneut öffnen, fragen uns das iPhone und andere Geräte und Apps, ob wir den Kalender importieren oder abonnieren wollen.

Zwei Tipps noch: Um die Kompatibilität mit Kalender-Apps und weiteren Diensten wie Google Calendars, etc. zu erhöhen: das HTTP:// der Kalender-URL durch ein WEBCAL:// ersetzen.

Webcal hat wirklich garnichts mit CalDAV zu tun. Es handelt sich lediglich um ein Pseudo-Protokoll zur Auswahl des richtigen Handlers.

Tipp 2: Wenn Änderungen in der ICS-Datei vorgenommen werden, erwartet bitte keine aktive Push-Benachrichtigung auf Eurem Endgerät. Läuft nicht. Da reden wir von ganz was anderem. Das Refresh-Intervall des Endgeräts bestimmt hier wann die Aktualisierungen vom Server geholt werden. Und wenn Ihr diese ICS-Datei nun bei Google Kalender einbinden wollt, damit Sie auf Eurem Android-Smartphone bereitsteht, dann willkommen in der häufig kranken Welt von Google:

Ihr könnt einen Kalender per URL hinzufügen. Kein Problem. Aber Google cached die von dort abgeholten Daten und je nach Auslastung kann es vorkommen, dass Google den Kalender erst nach 43 Stunden aktualisiert. 

Das Problem ist seit 2009 bei Google bekannt. 2014 äußert sich ein Google Engineer im entsprechenden Productforum ungefähr so: „Wir wissen, dass es da Probleme gibt, aber geht nicht davon aus, dass sich da in nächster Zeit was ändern wird.“

<ironie>Ist ja auch nicht so wichtig, dass eine Kalenderapp, nach der viele von uns jeden Tag flexibel Ihren Alltag organisieren, aktuell ist.</ironie>

Kriegt endlich Eure Schnittstellen auf die Reihe, Google und kommt im Jahr 2014 an. Es geht hier nicht um selbstfahrende Autos oder Glasfaseranbindungen in jedes Haus. Es geht nur um einen Kalender der aktuelle Daten anzeigt.