通过 Google 日历 UI,用户可以将外部 iCAL 日历添加到其日历列表中。
通过 CalendarList 检索日历时,不包含日历 URL。此外,似乎无法将外部 iCal 日历添加到用户的 CalendarList 中。
是这样吗?有没有办法以编程方式让 Google 日历用户订阅外部 iCal 源?
日历 UI 在内部使用以下 URL 添加外部日历:
此 URL 通过 POST 或 GET 获取以下参数:
如果用户未登录日历,他们将被重定向到 Google 登录屏幕。如果我有办法生成 secid(也许是 OAUTH?),我可以添加一个链接以允许用户自动添加日历。
不幸的是,Google Calendar API 似乎没有任何具有导入 .ics 功能的更新。 工单自 2007 年以来已记录,但截至目前仍没有任何解决方案。
我能找到的唯一选项是在用户的 Google 日历 Web UI 中手动导入 .ics 文件。 将事件导入 Google 日历支持页面讨论了该问题。
第 2 步:将事件导入 Google 日历
导出活动后,您可以将其导入 Google 日历。
- 在计算机上打开 Google 日历。注意:您只能从电脑导入,不能从手机或平板电脑导入。
- 单击右上角的设置齿轮按钮 > 设置。
- 打开日历选项卡。
- 单击“我的日历”和“其他日历”部分之间的导入日历。
- 单击选择文件并选择您导出的文件。文件应以“ics”或“csv”结尾
- 选择要将导入的事件添加到哪个日历。默认情况下,事件将导入到您的主日历中。
- 单击导入。
如果您使用的是 ZIP 文件,请在计算机上找到它并打开它。您将看到每个日历的 ICS 文件。从 ZIP 文件中取出各个文件,然后单独导入每个 ICS 文件。
注意:如果您从 CSV 文件导入重复事件,它们可能不会以这种方式显示,但它们会作为一系列一次性事件出现在您的日历上。
您可以提示用户打开此链接=>
https://calendar.google.com/calendar/u/0/r?cid=CALENDAR_LINK
其中
CALENDAR_LINK
是您日历的链接,可以是 http://server/filename.ics
确保将
http
协议替换为 webcal
协议,以便谷歌日历能够理解它。另一个想法是提供的网络通话链接中不要有任何空格
所以整个链接应该是这样的=>
https://calendar.google.com/calendar/u/0/r?cid=webcal://server/filename.ics