我希望能够无需使用网络浏览器(甚至离线)访问我的 ICloud 帐户上的日历。
如何将 ICloud 上的日历与 Ubuntu 上的某些日历客户端同步?
答案1
这OP 的回答非常有用,但缺少一些关键部分。特别是如何通过替换XXXX
上述内容来确定完整的 caldav URL。
我的回答归功于这篇博文(注意:我使用 Thunderbird/Lightning 作为我的 caldav 客户端,但这无关紧要)。
iCloud caldav URL 的格式如下:
https://pXX-caldav.icloud.com/<DSid>/calendars/<pGUID>
要确定相关参数,首先登录您的帐户icloud.com
,然后启动 Firefox 网页调试控制台 ( F12)。以下屏幕截图显示了 iCloud 日历页面下方的网页调试控制台,这些屏幕截图描述了这些步骤。选择“网络”选项卡 - 步骤 (1) - 针对所需日历生成一些流量(例如:创建虚拟约会)。查找相应的POST
(或GET
)交互。
- 该
DSid
参数是某种数字用户 ID,因此对于同一帐户拥有的多个日历/任务列表,它将是相同的。翻到“参数”-步骤 (2) 和 (3)- 以显示它。 - 日历各
pGUID
不相同(如果您没有设置多个日历/任务列表,则可能只是“主页”或“任务”)。可以从相同的交互中查看,但使用“响应”选项卡 - 步骤 (4) 和 (5) - 您可能需要深入研究 JSON 结构才能发现它。
一切都很好。然而,最近一切都停止了工作,底部的评论上述博客文章幸运的是,问题根源已经暴露:自 2017 年 6 月起,Apple 开始迁移 iCloud 账户,强制使用应用专用密码,这是一项非常明智的安全措施。这意味着在同步日历时,不再可能只使用主 iCloud 密码进行身份验证。
一旦您的 iCloud 帐户迁移完成(您会注意到日历同步失败),则需要执行以下步骤:
- 在您的 iCloud 帐户上启用双因素身份验证
- 生成应用程序专用密码并在 caldav 客户端中使用该密码
- 您的 caldav 服务器很可能会在迁移过程中发生变化(我的服务器从 p03 迁移到 p40),因此 URL 需要调整。
这新闻(德语,必要时可使用谷歌翻译)包含应用程序专用密码的背景信息。
顺便说一句:我不认为日历必须共享才能以这种方式访问。
答案2
笔记:最后测试日期:2024-02
您可以使用 Evolution 设置 iCloud 日历同步。同步的日历也会显示在 Gnome 日历中,因此您可以在设置同步后安全地删除 Evolution。
- 前往 icloud.com暂时地创建任意日历的公共共享以获取服务器 URL 并将其记在某处(例如https://p12-caldav.icloud.com)。 现在停用日历共享。如果不这样做,每个人都可以查看这个共享日历!
- 登录您的Apple 帐户并为 Evolution 创建应用程序专用密码来访问日历。
- 在 Evolution 中创建一个新日历,选择 CalDAV 并输入服务器 URL。不要输入完整的日历 URL,仅有的域部分(例如https://p12-caldav.icloud.com)。
- 对于用户,请输入您的 AppleId-Email 并单击“查找日历”。现在将要求您输入之前创建的密码(保存),并可以选择要同步的任意数量的日历。
答案3
要同步你的 ICloud 日历,你需要一个日历客户端支持 卡尔达夫例如进化,这是我将要展示的,因为它会自动在 Ubuntu 的默认日历上显示相同的内容。
1. 下载 Evolution 邮件/日历客户端:
从软件中心安装:
或运行sudo apt install evolution
。
2. 打开 icloud.com在网络浏览器中,转到日历。点击圆形无线的您要使用的日历名称右侧的图标。
您要使用的日历必须是共享的(深色图标)。如果不是,您将在那里看到该选项。
3.日历共享后,记下服务器的名称紧接着webcal://
(例如p02-www.icloud.com
:)
4. 开放进化:
- 文件 > 新建... > 日历
配置为:
类型:CalDAV
使能够Copy calendar contents locally...
以离线访问。
网址:如果服务器是p02-www.icloud.com/abc/123
,您将替换www
为caldav
并输入p02-caldav.icloud.com/abc/123
。它应该总是看起来像http://pXX...
,而不是像http://webcal://pXX...
5.点击查找日历,输入您的 ICloud 密码并选择您想要同步的日历。
6.如果你想同步多个日历,只需重复步骤3提前。
现在,您的 ICloud 日历将出现在日历上,您将在顶部面板日历指示器上看到预览
答案4
必须这样操作你还应该访问下面的地址,然后访问“安全”选项卡,应用程序密码. 在字段中输入 Evolution,然后复制生成的代码并将其粘贴到要求的密码中。