Google 日历.ics 导入标准

问题描述 投票:0回答:4

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

有人对 Google 所需的 REQUIRED 字段有任何提示吗?我在这里不知道为什么有时它不会导入,或者为什么它不喜欢某些事件。有时我们有 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

google-calendar-api icalendar vcalendar
4个回答
16
投票

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

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

(请注意:将 'Z' 留在时间戳末尾,除非您的时间是祖鲁时间 = GMT)

您应该添加 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 验证工具。


1
投票

我也遇到了类似的问题。

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


1
投票

我也有类似的问题,

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

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


0
投票

我的文件在第一个

VFREEBUSY
之前包含一个
VEVENT
块。删除该块允许我上传它。

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

© www.soinside.com 2019 - 2024. All rights reserved.