如何同步 iCloud 日历?

M. *_*rra 12 calendar caldav

我希望能够访问我的 iCloud 帐户上的日历,而无需使用网络浏览器,也可能离线。

如何将 iCloud 中的日历与 Ubuntu 上的某些日历客户端同步?

sxc*_*731 12

OP答案非常有用,但缺少一些关键部分。特别是如何通过替换XXXX上述内容来确定完整的 caldav URL 。

我的回答归功于这篇博文(注意:我使用 Thunderbird/Lightning 作为我的 caldav 客户端,但这无关紧要)。

iCloud caldav URL 格式如下:

https://pXX-caldav.icloud.com/<DSid>/calendars/<pGUID>
Run Code Online (Sandbox Code Playgroud)

要确定相关参数,请先在 上登录您的帐户icloud.com,然后启动 Firefox Web 调试控制台 ( F12)。下面的屏幕截图显示了这些步骤,这些屏幕截图显示了 iCloud 日历页面下方的 Web 调试控制台。选择“网络”选项卡 - 步骤 (1) - 根据所需日历生成一些流量(例如:创建虚拟约会)。寻找相应的POST(或GET)交互。

  • DSid参数是某种数字用户 ID,因此对于同一帐户拥有的多个日历/任务列表,它是相同的。翻转到“参数”-步骤 (2) 和 (3)- 以显示它。 确定“dsid”
  • pGUID从日历到日历改变(这可能仅仅是“家”或“任务”,如果你不具备多个日历/任务列表设置)。它可以从相同的交互中窥视,但使用“响应”选项卡 - 步骤 (4) 和 (5) - 您可能需要深入研究 JSON 结构才能发现它。 确定“pGUID”

这一切都很好。然而,最近这一切都停止了,值得庆幸的是,上述博客文章底部的评论指出了问题的根源:自 2017 年 6 月以来,Apple 正在迁移 iCloud 帐户以强制执行特定于应用程序的密码,作为一种非常明智的安全措施。这意味着在同步日历时不再可能仅使用主 iCloud 密码进行身份验证。

一旦您的 iCloud 帐户发生迁移(您会注意到日历同步失败),需要执行以下步骤:

  1. 在您的 iCloud 帐户上启用 2 因素身份验证
  2. 生成特定于应用程序的密码并在您的 caldav 客户端中使用该密码
  3. 作为迁移的一部分,您的 caldav 服务器很可能已更改(我的从 p03 变为 p40),因此需要调整 URL。

新闻项目(德语,如有必要,请使用谷歌翻译)包含有关应用程序特定密码的背景信息。

顺便说一句:我认为不必共享日历才能以这种方式访问​​。


mni*_*ess 9

这是 2018 年的更新。如果您想在 Gnome 日历中使用您的 iCloud 日历,您仍然需要安装 Evolution。添加日历后,您可以删除 Evolution。

  • 转到 icloud.com 并临时共享日历以获取服务器 URL 并在某处记下它(例如https://p12-caldav.icloud.com)。现在停用日历共享。如果您不这样做,每个人都可以查看此共享日历!
  • 登录您的Apple 帐户并为 Evolution 创建一个特定于应用程序的密码以访问日历。
  • 在 Evolution 中创建新日历,选择 CalDAV 并输入服务器 URL。不要输入完整的日历 URL,输入域部分(例如https://p12-caldav.icloud.com)。
  • 对于用户,输入您的 AppleId 电子邮件并单击查找日历。现在将询问您之前创建的密码(保存),并且可以选择任意数量的日历进行同步。


M. *_*rra 5

要同步您的 iCloud 日历,您需要一个支持 CalDAV的日历客户端,例如Evolution,我将展示它,因为它会自动在 Ubuntu 的默认日历上显示相同的内容。

1. 下载 Evolution 邮件/日历客户端:

从软件中心安装:

软件中心的演变

或运行sudo apt install evolution

2. 在网络浏览器中打开 icloud.com并转到您的日历。单击要使用的日历名称右侧的圆形无线图标。

iCloud 共享图标

您要使用的日历必须是共享的(黑色图标)。如果不是,您将看到那里的选项。

3.一旦日历共享,注意的服务器名称权后webcal://(例如:p02-www.icloud.com

4. 开放进化:

  • 文件 > 新建... > 日历

将其配置为:

类型:CalDAV

启用Copy calendar contents locally...以离线访问它。

URL:如果服务器是p02-www.icloud.com/abc/123,您将替换wwwcaldav并输入p02-caldav.icloud.com/abc/123。它应该总是看起来像http://pXX...,而不是像http://webcal://pXX...

用户YOUR-APPLE-ID@icloud.com

在此处输入图片说明

5.单击“查找日历”,输入您的 iCloud 密码并选择要同步的日历。

6.如果您要同步多个日历,只需提前从第3步开始重复。


现在您的 iCloud 日历将出现在日历上,您将在顶部面板日历指示器上获得预览

在此处输入图片说明