Heute habe ich festgestellt, dass meine selber entwickelten .ics-Feeds in Google Calendar nicht mehr angezeigt werden. Das Debugging ergab:
- Mein Server läuft, welcher die .ics-Dateien bereitstellt
- Mittels wget kann ich die .ics-Datei herunterladen
- Die Datei sieht in vim in Ordnung aus
- In access.log wird angezeigt, dass ein Google-Bot gelegentlich auf die Datei zugreift
Auf Grund einer Fehlermeldung des iCalendar Validator ist mir nun bewusst, dass in .ics-Kalenderdateien keine Unix-Zeilenumbrüche erlaubt sind (\n), sondern nur die MS DOS-Zeilenumbrüche (\r\n) unterstützt werden.
Nachdem ich in meiner ICS-Klasse folgende Zeile eingefügt habe, wird der Kalender in Google Calendar endlich wieder ordentlich angezeigt:
... $out = str_replace("\n","\r\n",$out); return $out ...
Nachtrag
In einem anderen ICS-Script verwende ich keine Klassen und spitze die Kalenderdaten nicht vorgängig in eine Variable ab. Ich habe das PHP-Script deshalb kurzerhand komplett auf MS DOS Zeilenendungen umgestellt:
sed s/$/^M/ unix.php dos.php