在.ics日历文件中包含LOCATION字段会停止MacOS El Capitan上的日历与Exchange Server进行通信

时间:2016-09-24 16:26:48

标签: macos exchange-server icalendar

这个问题与我之前提出的问题有关(Importing .ics into Calendar on Mac (El Capitan) breaks connection to Exchange Server)。我编写了一个Python脚本来生成.ics文件,该文件可用于将日历事件传输到MacOSX(El Capitan)上的日历应用程序中的Exchange日历中。 .ics文件使用http://severinghaus.org/projects/icv/生成验证。事件将导入到单独的日历中,而不是导入到默认的Exchange日历中,并按预期显示在日历中。但是,导入事件后,日历无法将事件同步到Exchange Server。如果我尝试添加被邀请者,这一点尤为明显;马上,我收到一条错误消息:

Calendar can’t save the event “event name” to the Exchange server.
There was an error attempting to send your changes to the exchange server.

经过大量的讨论后,似乎在.ics文件中包含一个LOCATION字段会停止与Exchange Server通信的日历。

因此,例如,以下.ics文件会将事件导入日历应用程序中的Exchange日历(可能称为“tempcal”),但该事件未与Exchange服务器同步,我无法再添加被邀请者:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Python iCalendar timetable//
BEGIN:VEVENT
SUMMARY:COURSE XYZ 2016-17 LECTURE 1
DTSTART;TZID=Europe/London;VALUE=DATE-TIME:20161011T160000
DTEND;TZID=Europe/London;VALUE=DATE-TIME:20161011T170000
DTSTAMP;VALUE=DATE-TIME:20160923T021716Z
UID:20161011160000/Introduction to my course@example.com
LOCATION:TBA
END:VEVENT
END:VCALENDAR

...而以下的.ics文件工作正常:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Python iCalendar timetable//
BEGIN:VEVENT
SUMMARY:COURSE XYZ 2016-17 LECTURE 1
DTSTART;TZID=Europe/London;VALUE=DATE-TIME:20161011T160000
DTEND;TZID=Europe/London;VALUE=DATE-TIME:20161011T170000
DTSTAMP;VALUE=DATE-TIME:20160923T021716Z
UID:20161011160000/Introduction to my course@example.com
END:VEVENT
END:VCALENDAR

这看起来像我站立的地方一样疯狂。任何人都可以解释发生了什么吗?也许更重要的是,我可以做些什么来解决这个问题(即在Mac上)或者我需要获得IT支持才能在Exchange Server端进行排序(如果是这样,他们应该怎么做?)

1 个答案:

答案 0 :(得分:0)

不确定这是否有帮助,但http://icalendar.org/validator.html的验证器会抱怨TZID值无效。需要在VTIMEZONE部分中定义“欧洲/伦敦”时区。

要验证的另一件事是在每一行的末尾都有一个CR LF,这是icalendar标准的要求。