Exchange 2010中错误地发布了ICS Feed中的全天事件

时间:2015-03-16 10:52:43

标签: ios macos exchange-server icalendar exchange-server-2010

我使用Exchange 2010的日历发布功能订阅iOS和OS X上的共享日历。我的日历包含许多全天活动。在iOS和OS X上,它们被错误地显示为阻止整天的24小时事件:

OS X Calendar application showing all-day events

在Google日历上,他们会在标题中显示12.00 am,但Google会更好地格式化日历:

Google Calendar showing all-day events

我从这些帖子中发现,Exchange似乎错误地导出了ICS Feed中的全天事件:

iCal feed all day events blank out entire day

ICS feed imported to Google Calendar shows (12:00am) in title for all day events

(或者,Outlook错误地在Exchange日历上创建全天事件。)

Exchange制作的ICS中的一个违规条目是:

BEGIN:VEVENT
DESCRIPTION:\n
SUMMARY:Test2
DTSTART;TZID=GMT Standard Time:20150123T000000
DTEND;TZID=GMT Standard Time:20150124T000000
UID:BC80DA81-93EF-4E89-831A-587C797949C4
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20150314T164745Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION:Somewhere
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:0
X-MICROSOFT-DISALLOW-COUNTER:FALSE
END:VEVENT

Apple和Google(毫不奇怪)忽略了MS特定指令X-MICROSOFT-CDO-ALLDAYEVENT:TRUE。根据该主题的其他帖子,DTSTARTDTEND应该只包含日期,而不包含时间组件。

目前这是非常令人沮丧的,它基本上使ICS提供无法使用,至少在iOS和OS X上。有没有办法解决这个问题?或者解决方法?

谢谢。

1 个答案:

答案 0 :(得分:1)

解决问题并不困难。在VEVENTs中

X-MICROSOFT-CDO-ALLDAYEVENT:TRUE

将日期时间值更改为DTSTART&中的日期值。 DTEND行

DTSTART;TZID=GMT Standard Time:20150123T000000
DTEND;TZID=GMT Standard Time:20150124T000000

并将DTEND日期更正为前一天:

DTSTART;TZID=GMT Standard Time:20150123
DTEND;TZID=GMT Standard Time:20150123

现在一切都会好起来的。