ThunderbirdのカレンダーにiCloudのカレンダーを同期する

Thunderbirdカレンダー(Lightning)とiCloudのカレンダーを同期させます。

なお、方法は以下のサイトを参考にさせて頂きました。とても詳しく解説されているので、本記事より下記リンク先をご覧になったほうが断然分かりやすいかと思います。

環境
Windows
10 Home (19044.2006)
Thunderbird
91.13.1

なぜ、Windowsのカレンダーを使わないのか?

Windowsに元々入っているカレンダーアプリでもiCloudのカレンダーと同期は可能です。設定もiCloudアカウントを追加するだけなので容易です。それでも使わない理由は以下の2点です。

URL、添付ファイルが取得されない

iCloudカレンダーで設定した各予定のURL添付ファイルの取得、表示がされません。予定のメモ欄にURIを記入することでアクセスURIの受け渡しはできますが、メモ欄ではリンクではなく文字列として表示されるため、アクセスの度にコピペや手動での起動が必要になります。これがものすごく手間です。

Windowsで追加した予定の挙動がおかしい

Windowsカレンダーアプリ上で追加した予定を、同じくWindowsカレンダーアプリで削除したとき、Windowsカレンダーアプリ上では予定が削除されますが、iCloudカレンダー(サーバー)からは削除されません。従って一時的に消えてもiCloudと同期の度にWindowsのカレンダーアプリに削除した予定が復活します。完全に削除するにはiCloud側で削除する必要があり、これも手間です。


以上の理由から、Windowsのカレンダーの常用は避けています。では、ThunderbirdのカレンダーとiCloudの同期をしていきます。

iCloud.comでApp用パスワードを発行

iCloudに二段階認証を設定している場合は、iCloud.comでApp用パスワードを発行します。

iCloud.comで各カレンダーのCalDAV URLを取得する

準備

箇条書きでまとめます。

  1. iCloud.comへアクセスしカレンダーページを開く
  2. 左サイドバーに表示されている各カレンダーの✓を外す
  3. ブラウザのデベロッパーツールを起動
    1. ネットワークタブをクリックし、XHRを選択
    2. URLで絞り込み欄にcollectionsと入力

CalDAV URLを取得

準備ができたら、左サイドバーの同期したいカレンダーのひとつに✓を入れます。そうするとデベロッパーツールにリクエスト情報が表示れるので、ヘッダーのPOSTから必要な情報をメモします。ブラウザによってはPOSTがURLで表示されるかもしれませんが、Firefoxでは▶POSTをクリックすることで以下のように整理されたデータで表示されます。

Host: <server-number>-calendarws.icloud.com
Filename: /ca/collections/<calendar-id>
dsid: <user-id>

↑を基にCalDAV URLを組み立てます。

https://<server-number>-caldav.icloud.com/<user-id>/calendars/<calendar-id>/

以上の作業を、同期したいカレンダーの分だけ繰り返し、メモしておきます。

Thunderbirdでカレンダーを追加する

Thunderbirdのカレンダーを開き、新しいカレンダー(ネットワークのサーバに保存)を追加します。

ユーザー名
iCloudログインメールアドレス
場所
作成したCalDAV URL
パスワード
App用パスワード

以上の入力でiCloudカレンダーと同期が可能になります。

各予定の添付にURLやURIスキームを入力する

添付にURLやURIスキームを入力することで、Webサイトやメモアプリの該当ページに2クリック(予定→URI)でアクセスできるようになります。