何だかアングラっぽい方法だけども一応使えるようになったので、そのメモ。
CalDAV URLの調べ方
「iCloudのCalDAVとCardDAVのURLを得る方法(2016年版)」(Personal Log) より。
Chromeのデベロッパーツールを利用して調べる。
-
Chromeで https://www.icloud.com/ を開く。
-
メニューの「その他のツール」→「デベロッパーツール」を開き(WindowsならF12を押す)、「Network」タブを開いておく。
-
iCloudにサインイン。
-
デベロッパーツールのNetworkタブの検索窓に「login」と入力し、一番上の「accountLogin」の行をクリックする。
-
さらに「Preview」タブを選択。
-
ツリーの中から次の項目を探し、内容をメモする。
- dsInfo.dsid
- webservices.calendar.url
- webservices.contacts.url
-
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/
-
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の値を変更する必要がある。次のように変更する。
-
Thunderbirdのメニューから「オプション」を開き、「詳細」タブの下部にある「詳細設定」ボタンをクリックして、 about:config を開く。
-
about:config の一覧中のどこでも良いので右クリックして「新規作成」→「文字列」を選択し、
general.useragent.override
と入力する。設定文字列は空欄のまま、または「unknown」など適当な文字列を入力して、OKボタンをクリック。
iCloud側がThunderbirdをブロックしている理由は、「LightningのバグによりiCloudサーバ上のデータに重大な不具合を生じさせる場合があり、現状まだバグ修正されていないため、Lightningからのアクセスを遮断している」とのこと(「Lightning sync to iCal calendar stops working」より)。具体的なバグの内容や、それにより引き起こされる不具合の詳細は不明。
不具合のある特定のバージョンのみ遮断しているとのことだが、実際には2013年以降はバージョンにかかわらずThunderbirdからの接続は拒否されている。現状では、User-Agentの値を詐称する、または calendar.useragent.extra の値を詐称する以外に接続する方法なし。