我有一个.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
答案 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上通过验证。