3

私の .ics ファイルを電子メールで受け取り、それらをカレンダーの招待状として解釈する Outlook を取得できたのは幸運でしたが、タイム ゾーンに関する問題が発生しています。

最初に、すべての日付が UTC で指定されている場合、Outlook が正しいことを行うことを発見しました (正しいことは、イベントを表示するときに時刻をシステムのタイム ゾーン設定に変換することです)。iCalendar ファイルは次のとおりです。

BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
BEGIN:VEVENT
ATTENDEE;CN=MIke;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CUTYPE=IND
 IVIDUAL;RSVP=TRUE:MAILTO:mike@host.com
DESCRIPTION:df
DTEND:20120924T230000Z
DTSTAMP:20120924T221102Z
DTSTART:20120924T223000Z
LAST-MODIFIED:20120924T221102Z
ORGANIZER;CN=Buddy Boy:MAILTO:buddyboy@host.com
SEQUENCE:0
SUMMARY:dasdfasdf
UID:cfa64be5-e731-4209-bef9-bf178432ae57
END:VEVENT
END:VCALENDAR

残念ながら、定期的なイベントを追加すると、何らかの理由で Outlook がこれを行いません。そこで、次を使用して iCalendar ファイルにタイム ゾーンを追加しようとしました。

_calendar.AddTimeZone(myTimeZone);

奇妙なことに、添付ファイルは「サポートされていないカレンダー event.ics」と表示されますが、添付ファイルを開くと、Outlook はファイルを正常に解釈します (ほとんどの場合)。

iCalendar ファイルは次のとおりです。

BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
BEGIN:VTIMEZONE
TZID:Eastern Standard Time
BEGIN:STANDARD
DTSTART;VALUE=DATE:18000101
RRULE:FREQ=YEARLY;BYDAY=SU;BYHOUR=2;BYMINUTE=0;BYMONTH=10;BYMONTHDAY=25,26,
 27,28,29,30,31
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART;VALUE=DATE:18000101
RRULE:FREQ=YEARLY;BYDAY=SU;BYHOUR=2;BYMINUTE=0;BYMONTH=4;BYMONTHDAY=1,2,3,4
 ,5,6,7
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
BEGIN:STANDARD
DTSTART;VALUE=DATE:20070101
RRULE:FREQ=YEARLY;BYDAY=SU;BYHOUR=2;BYMINUTE=0;BYMONTH=11;BYMONTHDAY=1,2,3,
 4,5,6,7
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART;VALUE=DATE:20070101
RRULE:FREQ=YEARLY;BYDAY=SU;BYHOUR=2;BYMINUTE=0;BYMONTH=3;BYMONTHDAY=8,9,10,
 11,12,13,14
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;CN=MIke;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CUTYPE=IND
 IVIDUAL;RSVP=TRUE:MAILTO:mike@host.com
DESCRIPTION:sadf
DTEND:20120924T190000
DTSTAMP:20120924T221645Z
DTSTART:20120924T183000
LAST-MODIFIED:20120924T221645Z
ORGANIZER;CN=Buddy Boy:MAILTO:buddyboy@host.com
SEQUENCE:0
SUMMARY:sdfadsfadsf
UID:61a57e06-7b6c-41fa-a640-1b217715e905
END:VEVENT
END:VCALENDAR

このファイルの見通しのどの部分に問題があるか知っている人はいますか? または、おそらくもっと重要なことですが、見通しを満足させるために dday.iCal で何ができるか知っている人はいますか?

ありがとう!

4

1 に答える 1

3

まず、TZID識別子を使用して、カレンダーではなくイベントがどのタイムゾーンであるかをカレンダーが認識できるようにする必要があります。

https://www.rfc-editor.org/rfc/rfc5545#section-3.2.19

DTSTARTの変更につながります

から:

DTSTART:20120924T183000

に:

DTSTART;TZID=Eastern Standard Time:19980119T020000

次に、タイムゾーン定義(特にRRULE、DTSTART)を次のように変更する必要があります。

DTSTART;VALUE=DATE:18000101
RULE:FREQ=YEARLY;BYDAY=SU;BYHOUR=2;BYMINUTE=0;BYMONTH=10;BYMONTHDAY=25,26,27,28,29,30,31

に:

BEGIN:VTIMEZONE
TZID:Eastern Standard Time
LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE

`

于 2012-10-07T18:39:57.793 に答える