Google Calendar .ics导入标准

时间:2009-12-08 19:08:51

标签: google-calendar-api icalendar vcalendar

我有一个.ics文件,我从我们的数据库中生成的,可以在iCal中正常工作,但在Google日历中是不稳定的。有时谷歌日历会导入该文件,但它不会收集所有事件。

有人对Google需要的必填字段有任何提示吗?我在这里不知道为什么有时它不会导入,或者为什么它不喜欢某些事件。有些日子我们有3个活动,但Google只显示1个。

在网上其他地方搜索并没有什么帮助,因为似乎大多数其他人都有同样的问题。

以下是我的格式示例:

BEGIN:VCALENDAR
METHOD:PUBLISH
X-WR-TIMEZONE:America/Los_Angeles
CALSCALE:GREGORIAN
VERSION:2.0
PRODID:-//PUC Calendar// v2.0//EN
BEGIN:VEVENT
UID:31754826317
TZID:America/Los_Angeles
DTSTART:20091001T100000
URL;VALUE=URI:http://www.puc.edu/news/calendar/events/dates/colloquy-dr-knight
DTSTAMP:20091001T100000
SUMMARY:Colloquy: Heather Knight
DTEND:20091001T100000
LOCATION:Sanctuary
END:VEVENT
END:VCALENDAR

我们的.ics文件网址为:http://www.puc.edu/news/calendar/puc.ics

4 个答案:

答案 0 :(得分:9)

您的TZID看起来放错了。您应该将它们包含在DTSTART和DTEND行中,如下所示:

DTSTART;TZID=Pacific/Honolulu:20110628T140000
DTEND;TZID=Pacific/Honolulu:20110628T140000

(请注意:除非你的时间是祖鲁时间=格林尼治标准时间,否则不要在时间戳结束时留下'Z')

您应该添加SEQUENCE:xxx,其中xxx是每次更新ics时递增的数字。 E.g。

SEQUENCE:0

我确实设法让它工作(它很古怪)并且只有来自我的多个事件ics文件的单个事件被导入时出现了同样的问题。最好的技巧(在其他地方提到)是从Google获取导出的ics文件然后克隆它。

我最终创建了两个独立的ics文件生成器 - 一个用于iCal(简单!),另一个用于Google(硬盘)。 Outlook可能需要三分之一。

很快你就会遇到下一个问题,那就是Google要求你指定ICS文件的时区,以及每个使你的应用程序编码更加复杂的事件。相比之下,Apple iCal允许您的应用发布“浮动时间”,假设它们是本地的。

你可能会尝试使用一堆ics文件验证工具,这些工具真的很有用......

http://icalvalid.cloudapp.net/

警告:通过此验证工具的文件仍然无法使用Google。谷歌应该真正创建它自己的ics验证工具。

[等着看我为这篇文章得到多少向下箭头代表!]

答案 1 :(得分:1)

我遇到了类似的问题。

删除UID或更改号码似乎对我有用。 (我的测试顺序编号为1,2,......)

答案 2 :(得分:1)

我有类似的问题,

如果您想将ics文件导入Google日历,

您必须在多个事件中具有不同的UID

答案 3 :(得分:0)

我的文件在第一个VFREEBUSY之前包含VEVENT块。删除该块允许我上传它。

我不知道该块内是否存在问题,或者是否不支持整个块,但该文件正在icalendar.org上通过验证。