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)- 以显示它。

pGUID从日历到日历改变(这可能仅仅是“家”或“任务”,如果你不具备多个日历/任务列表设置)。它可以从相同的交互中窥视,但使用“响应”选项卡 - 步骤 (4) 和 (5) - 您可能需要深入研究 JSON 结构才能发现它。

这一切都很好。然而,最近这一切都停止了,值得庆幸的是,上述博客文章底部的评论指出了问题的根源:自 2017 年 6 月以来,Apple 正在迁移 iCloud 帐户以强制执行特定于应用程序的密码,作为一种非常明智的安全措施。这意味着在同步日历时不再可能仅使用主 iCloud 密码进行身份验证。
一旦您的 iCloud 帐户发生迁移(您会注意到日历同步失败),需要执行以下步骤:
此新闻项目(德语,如有必要,请使用谷歌翻译)包含有关应用程序特定密码的背景信息。
顺便说一句:我认为不必共享日历才能以这种方式访问。
这是 2018 年的更新。如果您想在 Gnome 日历中使用您的 iCloud 日历,您仍然需要安装 Evolution。添加日历后,您可以删除 Evolution。
要同步您的 iCloud 日历,您需要一个支持 CalDAV的日历客户端,例如Evolution,我将展示它,因为它会自动在 Ubuntu 的默认日历上显示相同的内容。
1. 下载 Evolution 邮件/日历客户端:
从软件中心安装:
或运行sudo apt install evolution。
2. 在网络浏览器中打开 icloud.com并转到您的日历。单击要使用的日历名称右侧的圆形无线图标。
您要使用的日历必须是共享的(黑色图标)。如果不是,您将看到那里的选项。
3.一旦日历共享,注意的服务器名称权后webcal://(例如:p02-www.icloud.com)
4. 开放进化:
将其配置为:
类型:CalDAV
启用Copy calendar contents locally...以离线访问它。
URL:如果服务器是p02-www.icloud.com/abc/123,您将替换www为caldav并输入p02-caldav.icloud.com/abc/123。它应该总是看起来像http://pXX...,而不是像http://webcal://pXX...
用户:YOUR-APPLE-ID@icloud.com
5.单击“查找日历”,输入您的 iCloud 密码并选择要同步的日历。
6.如果您要同步多个日历,只需提前从第3步开始重复。
现在您的 iCloud 日历将出现在日历上,您将在顶部面板日历指示器上获得预览