正常に動作するiCal4j(1.0.3)APIを使用して.icsファイルを作成するアプリケーションを作成していますが、タイムゾーンに問題が発生しています。ZoneInfoOutlook(1.0.2)ライブラリを追加し、それを使用して.icsファイルを作成しました。ただし、Outlookは標準のタイムゾーンを認識していません。たとえば、これを生成すると、次のようになります。
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Ben Fortuna//iCal4j 1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTAMP:20120808T211508Z
DTSTART;TZID=America/New_York:20120808T020000
DTEND;TZID=America/New_York:20120808T180000
SUMMARY:NewYork Event
LOCATION:Manhattan
DESCRIPTION:This is a test Description
TZID:America/New_York
END:VEVENT
BEGIN:VTIMEZONE
TZID:America/New_York
TZURL:http://tzurl.org/zoneinfo-outlook/America/New_York
X-LIC-LOCATION:America/New_York
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
END:VCALENDAR
Outlookはタイムゾーンを認識できません。いくつかの実験の結果、ファイルを少し変更し、America/New_YorkをEasternStandardTimeに変更した後、Outlookがタイムゾーンを完全に読み取ることがわかりました。
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Ben Fortuna//iCal4j 1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTAMP:20120808T211508Z
DTSTART;TZID="Eastern Standard Time":20120808T020000
DTEND;TZID="Eastern Standard Time":20120808T180000
SUMMARY:NewYork Event
LOCATION:Manhattan
DESCRIPTION:This is a test Description
TZID:Eastern Standard Time
END:VEVENT
BEGIN:VTIMEZONE
TZID:Eastern Standard Time
X-LIC-LOCATION:Eastern Standard Time
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
END:VCALENDAR
この例を判断すると、Outlookはタイムゾーンに非標準のラベルを使用しています。
現在、Microsoft Outlook 2010(14.0.6117.5001)SP1に対してテストしています。
タイムゾーンがMicrosoftOutlookと完全に互換性を持つようにするための、iCal modまたは何らかの回避策を知っている人はいますか?
または、Outlook互換の.icsファイルを作成できる別のAPIですか?