.net DDay.iCal outlook与时区和重复模式的兼容性

.net DDay.iCal outlook与时区和重复模式的兼容性,.net,outlook-2007,rfc2445,rfc5545,dday,.net,Outlook 2007,Rfc2445,Rfc5545,Dday,我有幸让outlook通过电子邮件接受我的.ics文件,并将其解释为日历邀请,但我遇到了时区问题 最初,我发现如果我的所有日期都以UTC格式提供,Outlook会做正确的事情(正确的事情是在显示事件时将时间转换为系统的时区设置)。以下是iCalendar文件: BEGIN:VCALENDAR VERSION:2.0 METHOD:REQUEST PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN BEGIN:VEVENT ATTENDEE;

我有幸让outlook通过电子邮件接受我的.ics文件,并将其解释为日历邀请,但我遇到了时区问题

最初,我发现如果我的所有日期都以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
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
不幸的是,当我添加定期事件时,由于某些原因outlook不会这样做。因此,我尝试使用以下方法将时区添加到iCalendar文件中:

_calendar.AddTimeZone(myTimeZone);
奇怪的是,附件显示为“not supported calendar event.ics”,但是当我打开附件时,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
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
有人知道outlook对此文件的哪个部分有问题吗?或者,也许更重要的是,是否有人知道我可以在dday.iCal中做些什么来让outlook开心


谢谢

首先,您必须使用TZID标识符,以便日历知道事件是哪个时区,而不是日历

这将导致更改您的DTSTART

发件人:

致:

然后,您还应该将时区定义(尤其是RRULE、DTSTART)更改为:

致:


`

谢谢。第一个问题很容易解决。我最大的问题是,使用dday.ical库时,我无法使我的时区定义与提供的时区定义相同。你有使用这个库的经验吗?时区定义更像是一种奖励,关键是要在dtstart中指定tzid。
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