iCloudカレンダーをThunderbirdのLightningで利用

何だかアングラっぽい方法だけども一応使えるようになったので、そのメモ。

CalDAV URLの調べ方

iCloudのCalDAVとCardDAVのURLを得る方法(2016年版)」(Personal Log) より。

Chromeのデベロッパーツールを利用して調べる。

  1. Chromeで https://www.icloud.com/ を開く。

  2. メニューの「その他のツール」→「デベロッパーツール」を開き(WindowsならF12を押す)、「Network」タブを開いておく。

    chrome_icloud_caldav_1

  3. iCloudにサインイン。

  4. デベロッパーツールのNetworkタブの検索窓に「login」と入力し、一番上の「accountLogin」の行をクリックする。

    chrome_icloud_caldav_2

  5. さらに「Preview」タブを選択。

    chrome_icloud_caldav_3

  6. ツリーの中から次の項目を探し、内容をメモする。

    • dsInfo.dsid
    • webservices.calendar.url
    • webservices.contacts.url

    chrome_icloud_caldav_4

    chrome_icloud_caldav_5

  7. webservices.calendar.urlの中の calendarws を calendars に置き換えると、カレンダーのホスト名になる。
    https://pXX-calendars.icloud.com:443
    CalDAVのURLは次のとおり。

     ホーム  https://pXX-calendars.icloud.com:443/<dsInfo.dsid>/calendars/home/
    仕事   https://pXX-calendars.icloud.com:443/<dsInfo.dsid>/calendars/work/
    リマインダー   https://pXX-calendars.icloud.com:443/<dsInfo.dsis>/calendars/tasks/
  8. webservices.contacts.urlの中の contactsws を contacts に置き換えると、カレンダーのホスト名になる。
    https://pXX-contacts.icloud.com:443
    CardDAVのURLは次のとおり。

     連絡先  https://pXX-contacts.icloud.com:443/<dsInfo.dsid>/carddavhome/card/

Thunderbirdの設定方法

User-Agentの変更

iCloudは、なぜかUser-Agentの値を見てThunderbirdからの接続を拒否している。したがって、iCloudに接続するにはUser-Agentの値を変更する必要がある。次のように変更する。

  1. Thunderbirdのメニューから「オプション」を開き、「詳細」タブの下部にある「詳細設定」ボタンをクリックして、 about:config を開く。

  2. about:config の一覧中のどこでも良いので右クリックして「新規作成」→「文字列」を選択し、general.useragent.override と入力する。設定文字列は空欄のまま、または「unknown」など適当な文字列を入力して、OKボタンをクリック。

    chrome_icloud_caldav_6
    chrome_icloud_caldav_7

iCloud側がThunderbirdをブロックしている理由は、「LightningのバグによりiCloudサーバ上のデータに重大な不具合を生じさせる場合があり、現状まだバグ修正されていないため、Lightningからのアクセスを遮断している」とのこと(「Lightning sync to iCal calendar stops working」より)。具体的なバグの内容や、それにより引き起こされる不具合の詳細は不明。

不具合のある特定のバージョンのみ遮断しているとのことだが、実際には2013年以降はバージョンにかかわらずThunderbirdからの接続は拒否されている。現状では、User-Agentの値を詐称する、または calendar.useragent.extra の値を詐称する以外に接続する方法なし。

CardDAVの登録

  1. Thunderbirdのカレンダー欄で右クリックし、「新しいカレンダー」を選択。

    chrome_icloud_caldav_8

  2. 「ネットワークのサーバに保存する」にチェックし、次へ。

  3. 「フォーマット」にCalDAVを選択し、「場所」にCalDAVのURLを入力して、次へ。

    chrome_icloud_caldav_9

  4. 名前にカレンダーの名前を入力し、次へ進むと設定終了。