5

我有一个从我们的数据库生成的 .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 文件 URL 是:http ://www.puc.edu/news/calendar/puc.ics

4

4 回答 4

14

您的 TZID 看起来放置不正确。您应该将它们包括在 DTSTART 和 DTEND 行中,如下所示:

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

(请注意:除非您的时间是祖鲁时间 = 格林威治标准时间,否则不要将 'Z' 放在时间戳的末尾)

您应该添加一个 SEQUENCE:xxx,其中 xxx 是一个数字,每次更新 ics 时都会递增。例如

SEQUENCE:0

我确实设法让它工作(它很古怪)并且遇到了同样的问题,我的多个事件 ics 文件中只有一个事件被导入。最好的技巧(在别处提到)是从 Google 获取导出的 ics 文件,然后克隆它。

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

很快您就会遇到下一个问题,即 Google 要求您为 ICS 文件和每个事件指定时区,这会使您的应用程序编码变得更加复杂。相比之下,Apple iCal 允许您的应用发布假定为本地的“浮动时间”。

有一堆 ics 文件验证工具,你可以试试这个,它们真的很有帮助......

http://icalvalid.cloudapp.net/

警告:通过此验证工具的文件仍然会在 Google 上失败。Google 应该真正创建它自己的 ics 验证工具。

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

于 2011-12-06T01:31:11.213 回答
1

我只是有类似的问题。

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

于 2009-12-22T17:07:32.143 回答
1

我有一个类似的问题 ,

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

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

于 2013-01-27T09:00:31.747 回答
0

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

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

于 2017-07-03T15:39:44.657 回答