来自 iCal Feed URL 的事件显示为“忙碌”在 Google 日历中
我正在尝试在 Google 日历中查看我的系统生成的 ical 格式的日历源。我通过 Google 日历“其他日历”下拉菜单中的“按 URL 添加”功能执行此操作,并向动态生成的 ics ical 文件提供 URL。
Google 日历确实成功地从源中读取事件并创建日历,但是所有事件都仅显示为“忙碌”,除了事件时间之外没有任何详细信息(摘要、描述等)。这些事件在谷歌日历视图中也有一个“私人”锁定图标。
我查看了生成的 iCal 文件的内容,但没有看到 Google 日历将事件呈现为私有的任何原因。每个 VEVENT 的 CLASS 属性都设置为“PUBLIC”。我还在 OSX 的 iCal 应用程序中订阅了相同的 URL,并且事件显示完美,并显示了所有详细信息。
以下是生成的 ical 文件(已删除敏感信息):
BEGIN:VCALENDAR
PRODID:-//My Calendar//iCal Class MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
X-WR-CALNAME:Joe Smith
BEGIN:VEVENT
DTSTART:20111124T050000Z
DTEND:20111124T050000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:ToDos_82
DTSTAMP:20111108T143800Z
DESCRIPTION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Quisque convallis elementum dui at tristique.
SUMMARY;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Test Event
PRIORITY:0
CLASS:PUBLIC
STATUS:CONFIRMED
END:VEVENT
BEGIN:VEVENT
DTSTART:20111124T050000Z
DTEND:20111124T050000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:ToDos_83
DTSTAMP:20111108T143800Z
DESCRIPTION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Proin venenatis ullamcorper dui quis porttitor.
SUMMARY;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Another Test Event
PRIORITY:0
CLASS:PUBLIC
STATUS:CONFIRMED
END:VEVENT
BEGIN:VEVENT
DTSTART:20111108T050000Z
DTEND:20111111T050000Z
LOCATION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:CLS HQ
TRANSP:OPAQUE
SEQUENCE:0
UID:Events_10
DTSTAMP:20111108T143800Z
DESCRIPTION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Doing some more testing here
SUMMARY;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Yet Another Test Event
PRIORITY:0
CLASS:PUBLIC
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
I am attempting to view a ical formatted calendar feed generated by my system in Google Calendar. I am doing this via Google Calendar's "Add by URL" function in the "Other Calendars" drop down menu, and supplying the URL to the dynamically generated ics ical file.
Google Calendar does successfully read the events from the feed and creates the calendar, however all the events are just shown as "Busy" with no details (summary, description, ect) other than the time of the event. The events also have a "Private" lock icon on them in the google calendar view.
I've looked over the generated iCal file's contents and I don't see any reason why Google Calendar would render the events as Private. Each VEVENT has its CLASS property set to "PUBLIC". I have also subscribed to the same URL in OSX's iCal application and the events display perfectly, with all details shown.
Below is a the generated ical file (with sensitive info removed):
BEGIN:VCALENDAR
PRODID:-//My Calendar//iCal Class MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
X-WR-CALNAME:Joe Smith
BEGIN:VEVENT
DTSTART:20111124T050000Z
DTEND:20111124T050000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:ToDos_82
DTSTAMP:20111108T143800Z
DESCRIPTION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Quisque convallis elementum dui at tristique.
SUMMARY;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Test Event
PRIORITY:0
CLASS:PUBLIC
STATUS:CONFIRMED
END:VEVENT
BEGIN:VEVENT
DTSTART:20111124T050000Z
DTEND:20111124T050000Z
TRANSP:OPAQUE
SEQUENCE:0
UID:ToDos_83
DTSTAMP:20111108T143800Z
DESCRIPTION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Proin venenatis ullamcorper dui quis porttitor.
SUMMARY;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Another Test Event
PRIORITY:0
CLASS:PUBLIC
STATUS:CONFIRMED
END:VEVENT
BEGIN:VEVENT
DTSTART:20111108T050000Z
DTEND:20111111T050000Z
LOCATION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:CLS HQ
TRANSP:OPAQUE
SEQUENCE:0
UID:Events_10
DTSTAMP:20111108T143800Z
DESCRIPTION;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Doing some more testing here
SUMMARY;LANGUAGE=en;ENCODING=QUOTED-PRINTABLE:Yet Another Test Event
PRIORITY:0
CLASS:PUBLIC
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
看来我已经解决了这个问题。我提供给 GCal 的日历 URL 没有以文件名结尾(我使用具有 URL 重写功能的 PHP 框架)。我更新了 URL,在其中附加了“/calendar.ics”,并在 GCal 中订阅了该 URL,现在所有事件似乎都显示良好,显示了所有详细信息。
Well it appears that I have fixed the issue. The calendar's URL that I provided GCal did not end in a filename (I use a PHP framework with URL rewriting). I updated the URL, appending "/calendar.ics" to it and subscribed to the URL in GCal, and now all events seem to display fine, showing all details.
VEVENTS
标记为TRANSP:OPAQUE
。根据RCF 5545,这意味着它们是阻塞元素一次搜索。要使它们非阻塞,请将其更改为
TRANSP:TRANSPARENT
。The
VEVENTS
are marked asTRANSP:OPAQUE
. According to the RCF 5545 this means they are blocking elements for a time search.To make them non blocking change it to
TRANSP:TRANSPARENT
.我测试了相同的内容,它似乎在我的 Google 日历中显示得很好。我使用“其他日历”下的“按 URL 添加”选项添加了它。所有细节都是可见的,没有向我展示锁或其他奇怪的东西。
听起来您正在按需动态生成内容。您是否尝试过将其转储到静态文件并以这种方式添加 - 不是作为永久解决方案,只是为了看看这是否对 GCal 产生影响?
日历数据的动态生成可能会考虑请求者并在此基础上改变事件可见性。例如,如果日历服务器位于您的 Intranet 上,则很容易出现这种情况。
I've tested the same content and it seems to show up fine in my Google Calendar. I added it using the "Add By URL" option under "Other Calendars". All the details are visible, no locks or other weirdness shown for me.
It sounds like you are dynamically generating the content on-demand. Have you tried just dumping it to a static file and adding it that way - not as a permanent solution, just to see if that makes a difference to GCal?
It may be that the dynamic generation of calendar data takes into account the requester and changes event visibility on that basis. This could easily be the case if, for example, the calendar server is on your intranet.