3

我在将下面的 vcalendar“脚本”导入 Outlook 2003 时遇到问题。我正在做的是使用 php 的 mail() 函数,并且基本上发送包含此日历的消息,从而创建一个事件。不幸的是,我为之创建的团队无法升级到较新版本的 Outlook,因此如果有 2003 年的怪癖,可能会对其产生影响。它可以很好地导入谷歌日历,并且根据http://severinghaus.org/projects/icv/,它可以完美地验证。我不断收到两个错误:

1 - 如果我将其发送到我的 Gmail 帐户并下载 .ics 文件,我会收到以下错误:

“无法导入 vCalendar 文件。如果您尝试以 iCalendar 格式保存定期农历约会,则会出现此错误。为避免此错误,请将约会选项设置为公历而不是农历。”

2 - 如果我将此发送到与 Outlook 关联的电子邮件帐户,它只会显示为无标题附件,当我双击该附件时,它会出于某种原因打开一个新消息对话框。

日历“脚本”如下 -

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:THIS IS THE CALENDAR NAME
X-WR-TIMEZONE:America/Chicago
BEGIN:VTIMEZONE
TZID:America/Chicago
X-LIC-LOCATION:America/Chicago
BEGIN:DAYLIGHT
TZOFFSETFROM:-0600
TZOFFSETTO:-0500
TZNAME:CDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0500
TZOFFSETTO:-0600
TZNAME:CST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART:20101117T170000Z
DTEND:20101117T180000Z
DTSTAMP:20101116T175944Z
CREATED:20101116T034056Z
DESCRIPTION:This is the description.
LAST-MODIFIED:20101116T034056Z
LOCATION:THIS IS THE LOCATION
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:This is the summary!
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

提前感谢大家的帮助!这是我第一次使用这些,所以如果有任何 n00b 错误,我深表歉意......

4

1 回答 1

0

Outlook 2003 不符合标准。除其他外,您必须包括 PRODID 和 UID

此外,虽然这不适用于上述示例,但如果您尝试构建一个包含日期但没有时间的 ics 文件,您必须像这样格式化日期:DTSTART;VALUE=DATE:20110101 {或任何日期,显然}。

尝试从 Outlook 2003 中导出一个日历项目,看看它喜欢什么。

于 2010-12-28T20:00:16.900 回答