如何从iCalendar源访问事件?

时间:2015-11-21 16:48:38

标签: curl google-calendar-api icalendar

我正在尝试了解iCalendar供稿并阅读了规范(RFC 5546)并认为我会尝试简单地从公共iCalendar供稿中请求事件。

我试图从Google的公共天气日历中获取天气事件列表:

curl -X GET https://calendar.google.com/calendar/ical/p%23weather%40group.v.calendar.google.com/public/basic.ics

我收到了这个回复:

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-TIMEZONE:UTC
END:VCALENDAR

但没有事件数据。我是否误解了如何从iCalendar网址中检索数据?如何从iCalendar Feed中访问事件数据?

2 个答案:

答案 0 :(得分:1)

您选择的日历似乎是空的,因为将其重新导入Google日历会验证。尝试使用其他日历之一的相同方法,例如一年中的几天,你应该看到预期的事件:

curl -X GET https://calendar.google.com/calendar/ical/%23daynum%40group.v.calendar.google.com/public/basic.ics

您链接的规范适用于iTiP,这是一种支持事件安排的协议,例如创建或删除新事件。您引用的日历输出符合规范,因为它包含PUBLISH方法,这意味着输出只是列出事件而不需要代表客户端执行任何操作。这表明日历输出已完成,即不是某种增量更新。

答案 1 :(得分:1)

是的,正如tmw所说,那个ics feed是空的。

如果您想要一个包含测试事件的Feed,这很有趣: 古怪的假期(全天活动):https://www.google.com/calendar/ical/0bajvp6gevochc6mtodvqcg9o0%40group.calendar.google.com/public/basic.ics

这个人有悉尼的月相 https://www.google.com/calendar/ical/ht3jlfaac5lfd6263ulfh4tql8%40group.calendar.google.com/public/basic.ics

如果您想要有时间,请创建自己的“额外”Google日历,或者查找包含带有ics Feed的课程的网站。