Google日历作为iCal / ICS文件的Webcal协议的默认处理程序


20

我想让Google日历使用Webcal(维基百科)方案(提供ICS文件)打开URI ,类似于将Gmail设置为mailto:链接的默认处理程序的方式。

更具体地说,我希望Google日历将其导入到我的主日历中。(您可以通过单击其他日历旁边的小箭头,从下拉列表中选择导入日历,导航到.ICS文件,然后选择导入来手动将ICS文件导入Google日历。)

我不知道这是否可行,但我希望有人会有一个好主意。

Answers:


14

首次登录Google日历时,Chrome浏览器提供了此选项:

Chromium浏览器中的Google日历可处理Webcal协议

如果您不小心回答了No这个问题,可以按Wrench工具栏上的按钮,然后转到Settings。单击Show advanced settings,查找Content settings...(在“隐私”标题之后)并找到Manage handlers按钮。单击X您要删除的忽略协议旁边的。或者,您可以protocol handlers在Chromium设置中输入搜索框。请参见下面的屏幕截图。

在Chromium浏览器中撤消忽略协议处理程序

火狐浏览器

在stackexchange上找到了这篇文章,文章解释了如何在Firefox中实现相同的功能,但是这对我在firefox 12和15上不起作用:如果我禁用了“从不保存历史记录”选项(私有浏览模式),则对我而言有效:

转到Google日历的网站,然后按Ctrl+Shift+K

将此粘贴到>符号后:

navigator.registerProtocolHandler("webcal","https://www.google.com/calendar/render?cid=%s","Google Calendar");

按Enter键,然后单击Add application应显示在工具栏下方的按钮。

Firefox控制台

Firefox接受协议处理程序

您可能需要先将gecko.handlerService.allowRegisterFromDifferentHost选项切换about:config到,true然后再尝试执行此操作(如果google将您重定向到本地google域)。请记住在调用registerProtocolHandler函数后将其返回为false,因为恶意站点可能会利用它。在这里查看详细信息。


就个人而言,我正在寻找Chrome / Chromium的选项。如果第一次登录时没有正确反应,是否有选项打开?
拉姆斯

是的,您可以删除忽略的协议处理程序。看到我编辑的答案!
jeremija 2012年

1
我发现我需要将其放在javascript:navigator.registerProtocolHandler("webcal","https://www.google.com/calendar/render?cid=%s","Google Calendar");Google Chrome浏览器的位置栏中才能正常工作。
Mikko Rantalainen 2012年

我尝试了Firefox解决方案,但是当单击.ics文件时,我弹出窗口来存储或使用gedit打开(因为它是VCS / ICS文件),对此有何提示?btw superuser.com/a/442494/216033提到了类似的解决方案。
TiloBunt

这是一个测试ics(是我在寻找解决方案的过程中发现的)calendar-a-googleproductforums-com.googlegroups.com/attach/…–
TiloBunt

15

在较新版本的Chromium / Chrome中,您需要登录到Google日历,然后点击地址栏中的重叠菱形图标。

屏幕截图

选择“使用Google日历”,然后单击“完成”。这会将Google日历注册为Webcal链接的处理程序。

注意:
您可能需要将Chromium设置为允许站点成为默认协议处理程序。您可以通过:

  1. 高级设置->隐私,内容设置->处理程序
  2. 选择“允许站点要求成为协议的默认处理程序”

无法

1

由于我遇到了与OP相同的问题,并且自从发布接受的答案以来情况发生了变化,所以我认为我会分享自己的发现。以下说明主要适用于Firefox,但除了几乎没有区别外,它们也在Chrome中运行。

[2019-03-08]更新:反映新的Firefox行为

因为使用

    javascript:window.navigator.registerProtocolHandler("webcal","https://calendar.google.com/calendar/r?cid=%s","Google Calendar");

在Firefox的控制台上

SecurityError:拒绝将https://www.google.com/calendar/render?cid=%s添加为协议处理程序的权限

如今,这是仍然可以“实现”的新方法:

  1. 导航至about:config,通过单击按钮确认风险。
  2. 类型webcal,将列表过滤为类型的项目gecko.handlerService.schemes.webcal.[...]
  3. 点击Edit按钮,你所选择的权[...].name项(因为30盒遗弃与Firefox 67,我选择了[...].0.name
  4. 输入所需的名称,例如Google Calendar,然后单击Save
  5. 单击Edit相应[...].uriTemplate项目的按钮,即已编辑项目下方的项目。
  6. 粘贴URL https://calendar.google.com/calendar/r?cid=%s并单击Save
  7. 转到Firefox的选项关联的应用程序通过连续点击⚙ Options⚙ General菜单选项,然后向下滚动到Applications款。
  8. 在列表中找到webcal的任何打字它逼到上面的列表,或通过滚动搜索框。
  9. 单击条目右半部的下拉菜单,然后选择Use Google Calendar(或您在说明#4中选择的任何名称)。

测试日历:https//www.webcal.fi/en/calendars.php

HTH。如果没有,请在下面发表评论。


遵循了所有步骤,但在FF 50.1.0 / Ubuntu x64上仍然对我不起作用。一切如您所说,但ics仍会调用带有内容处理功能的对话框(保存或运行应用程序)。我已经尝试过navigator.registerContentHandler方法,但仍然没有结果,URI / gcal未注册为mime类型:text/calendar
b1r3k

1
抱歉,但是Google或Mozilla似乎都进行了更改,因此目前无法正常工作。不过,您仍然可以在URL中手动为gecko.handlerService.schemes.webcal.X.name和添加一个条目gecko.handlerService.schemes.webcal.X.uriTemplate(其中X比当前的最高数字高)about:config。之后,您可以继续执行指令5。
尤达

我只是在最新的Google Chrome浏览器上尝试了此操作,但是没有运气。我可以注册该处理程序,但是在注册了该处理程序的情况下,不能将ICS文件加载到Google Cal中。
Craig Lambie '18

@CraigLambie首先,很不幸地发现我的答案被-1不满意的Chrome用户“ 编辑”。其次,我从没说过“指令也可以在Chrome中工作”。取而代之的是,我明确指出:“ 除了极小的差异外,它们还可以在Chrome中运行”!最后,由于我永远不会使用Chrome,所以我根本不在乎它如何处理webcal链接-对于Firefox来说,它是有效的,这就是从一开始就为整个答案背后的原因-对于基于Chromium的解决方案,请参见@peonicles或@jeremija,然后要求他们进一步修复Chrome。
尤达
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.