Posts Tagged ‘iCalendar’

Mittwoch, 29. Juni 2016

Einen Outlook 2010-kompatiblen iCalendar (.ics) generieren

Nach einigem Üben habe ich es geschafft, einen iCalendar-Feed in Microsoft Outlook 2010 auf der Arbeit zu integrieren. Hier das finale Layout, welches keine Fehlermeldungen mehr produziert:

BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:foursquare Check Ins
X-WR-TIMEZONE:Europe/Amsterdam
CALSCALE:GREGORIAN
PRODID:-//eMeidi.com//foursquare2ics 0.32//EN

BEGIN:VTIMEZONE
TZID:Mad
X-LIC-LOCATION:Europe/Amsterdam
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
END:VTIMEZONE

BEGIN:VEVENT
UID:5772a5d6498eef051c12ed37@domain.tld
DTSTART;TZID=Mad:20160628T182910
DTEND;TZID=Mad:20160628T183410
DTSTAMP:20160629T190304Z
SUMMARY:Bahnhof Bern
LOCATION:Bahnhof Bern
COMMENT:
END:VEVENT

BEGIN:VEVENT
UID:577297d6488e883164f01dd4@domain.tld
DTSTART;TZID=Mad:20160628T172926
DTEND;TZID=Mad:20160628T173426
DTSTAMP:20160629T190304Z
SUMMARY:Zürich Hauptbahnhof
LOCATION:Zürich Hauptbahnhof
COMMENT:
END:VEVENT

...

END:VCALENDAR

Wichtig war:

Outlook Calendar-Fehlermeldungen

Microsoft Outlook 0x00040023

Microsoft Outlook 0x0004001A

Tags: , , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 13. April 2013

Google Calendar zeigt selber entwickelte ICS-Feeds nicht mehr an

Heute habe ich festgestellt, dass meine selber entwickelten .ics-Feeds in Google Calendar nicht mehr angezeigt werden. Das Debugging ergab:

  1. Mein Server läuft, welcher die .ics-Dateien bereitstellt
  2. Mittels wget kann ich die .ics-Datei herunterladen
  3. Die Datei sieht in vim in Ordnung aus
  4. 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

Tags: , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen