先日 iOS6 も発表になりましたが、なんだかんだいって Apple の各種サービスは Mac OS X と iOS で使うことが大前提で、Windows やらましてや Linux で使うことはあんまり考えられていなかったりします。
Windows にはこのコントロールパネルを入れるとフォトストリームを参照できるようになるのと、Outloot でメール、アドレス帳、カレンダーなんかを使えるようになるらしいですが、そのためには有償ソフトである Outlook をわざわざ買わなければならないみたいで、案外使い甲斐がない状態であるのも事実です。
メールに関してはこちらのオフィシャル情報を参考に、例えば Thunderbird で IMAP プロトコルで読み書き送信ができるようになったりします。以下のエントリーでもうちょっと詳しく解説されてたりするので、必要な方は参照してみてください。
iCloudメール me.com をThunderbirdに設定してみた。 | ozappa face
ハナシ変わって、Thunderbird には Lightning というアドオンがあって、カレンダーでスケジュール管理なんかもできるわけです。例えば Google カレンダーなんかも利用できるようにしておくとかなり便利です。その方法は、ググったらいちばん最初に出てきた (ォィ) このあたりを参考にどうぞ。
Thunderbird8 サンダーバードにGoogleカレンダーを同期させる方法
で、実は iCloud のカレンダーと Mac OS X のアプリである iCal も「CalDAV」というプロトコルによって同期しているようで、上記 Thunderbird Lightning も CalDAV には対応しているのです。
ただ、Apple のオフィシャル情報では CalDAV の URL が公開されていないので、使えそうで使えなかったりします。
というわけで、iCloud のカレンダーの CalDAV URL をなんとか調べようというのが今回の話題です。
まあ簡単にいうと、それを調べるためのスクリプトを Ruby で作ってみました。Linux/UNIX 使いの方は Gitlab.com から iCCalURI.rb をゲットしてください。
MACHIDA Hideki / iCCalURI.rb · GitLab
使い方はリンク先の画面に書いてあるとおりですが、こんなカンジで実行してください。
$ ./iCCalURI.rb あなたのAppleID パスワード [00から10のいずれか]
第3引数は省略可能です。指定しなければ01サーバーになります。iCloud のサーバーは01から10まで10個あるようなので、そのどれを使うか数字のみで指定してください。カッコはいりません。
上記成功すれば
カレンダー名1:URL1 カレンダー名2:URL2 カレンダー名3:URL3
というカンジで標準出力にずらずら表示されます。
リマインダーの URL など、実際にはカレンダーでないものも含まれるので、iCloud.com で実際に使っているカレンダーの名前を確認して、対応する URL を Lightning に設定してください。(2012/6/24追記:リマインダーリストのURL も設定するとちゃんとTODOとして認識するようです)
Windows をお使いの方で、このためにわざわざ Ruby の実行環境なんぞ揃えたくねェよ!という方 (ごもっとも) のために、Exerb というツールで Windows の実行ファイルに変換し、使用 DLL とセットにしたものをこちらに置いておきます。
iCCalURI.zip – File Shared from Box – Free Online File Storage
使い方はおんなじです。てきとーなフォルダ、例えば「C:\iCCalURI」とかに解凍したら、コマンドプロンプトで以下のように実行してください。
> C: > cd \iCCalURI > iCCalURI あなたのAppleID パスワード [00から10のいずれか] > list.txt
そうすると、list.txt にカレンダー名と WebDAV URL が出力されているので、メモ帳あたりで開いてみてください。
というわけで、ワリと乱暴な説明ですが(汗)、そんなカンジで Windows やら Linux といった Mac OS X 以外の OS でも iCloud をガシガシ活用してしまいましょう。
Mac OS X の方は…。もちろん Ruby の実行環境を用意していただければ Linux/UNIX とおんなじです。まあ純正の iCal があるので、それでお使いになられれば充分じゃないかな…。
(2013/1/19追記)
どうも最近アラーム通知機能が動かなくなって、アラームが上がってきたときにクライアント側で再通知を停止したり再通知間隔を指定すると書き込みエラーになるようだ。PC 上の Thunderbird を iCloud に繋げられる環境にいるということは、手持ちの iOS デバイスもきっとネットには繋がっていると思うので、この際アラームはそっちに任せて (ォィ) カレンダーのプロパティで「アラーム通知する」をOFFにしておいた方がいいかもしんない。
あ、リマインダーは大丈夫だけど、カレンダーだけね
(2013/5/21追記)
iCloud側の挙動が微妙に変わったようで動かなくなっていたので修正しました。あとソースは ruby-2.0.0 でも動くようにしました。なんだか最近 Exerb で作った実行ファイルはウィルス扱いされてしまうのですなあ。別に問題なく作ったつもりのものなんですけどね…。
(2013/8/23追記)
Lightningからうまく動かなくなっちゃいましたね…。どうもLightning自体の動作が不安定なカンジがするのだけれども、よくわかりません…??
(2014/1/24追記)
ヒサビサにやってみたらまた動くようになってました。Thunderbird-24.1.0 / Lightning-2.6.2
(2018/4/17追記)
ソースをGithubからGitlab.comに移動しました
コメント
初めまして。windowsユーザーがicloudのcaldavを入手する方法を探していて、先日、こちらにたどり着きました。
なんてありがたい!と感謝しつつ、早速記載通りやってみたのですが、
> iCCalURI [email protected] password [01] > list.txt
※[]内は[00]から[10]までの11通りで試しました
※[email protected]、passwordの部分には自分のappleIDとパスワードを記入
という形で何回やっても
error.
か出てしまい、成功しませんでした。
icloud側の方でなにか変更があり、URLが取れなくなったのでしょうか。
それならば諦めようと思うのですが、私のコマンドプロンプト入力に何か初歩的な間違いがあったりしますでしょうか。(全くのコマンドプロンプト素人です)
図々しいご質問、誠に申し訳ありません。可能でしたら、ご教示いただけると幸いです。
あーすみませんわかりずらくて。最後のパラメータの '[]' は、「省略しても良い」という意味のつもりです<説明ねーじゃん(汗
ですので、'[01]' は指定しないか、'01' と '[]' なしで指定してください。
出来ました!本当に助かりました。早々にご教示、どうもありがとうございます。
グーグル先生で相当調べ、あれやこれや試みたのですが、windows環境でURLを調べる手法はこの記事以外見つからず。(『windowsでは調べる手段が見つからない』と明言されているページの方が上位にヒットしてました・・)
ド素人なもので[]の意味が分からず、お手間をおかけしました。
重ね重ねありがとうございました!
う~ん、得られたどのURLを試しても、ブラウザでは「Forbidden You don't have permission to access…」が出、LightningではカレンダをONにできないのですが、何か情報ありますか?Windows VistaとLinux Ubuntuで同じ結果でした。
ブラウザってWebブラウザですか?
そうだとして、BASIC 認証のダイアログが出て AppleID アカウントを入力すると、画面にはなにも出ませんがとりあえず認証は通ると思います。
そうでなければ、なにか入力が間違っているのかも…
Firefox、ChromeなどでBASIC 認証(httpレベル)は通ります。その後「Forbidden…」のメッセージの画面になります。Lightningでも同じで、最初はhttpレベルの認証を最速され一見当該カレンダが動き出すように見えますが、その後「ふわっ」とそのカレンダがオフになり、手でオンにしてもまたオフになります。結局403の「Forbidden…」が原因と思われます。URLは以下の形式です。
https://p07-caldav.icloud.com/<固有のID>/calendars/
URLの終わりに「home/」を付けても同じです。
なるほど、たぶん「07」以外のサーバーも試されたと思います。
なんとゆーか、そもそもApple純正品以外との連携は考慮されていないので、たまにすごく不安定なときやイキナリ動作が変わることがあります。例えば本文の「2013/1/19追記)」のところも後から発生したことだったりします。
しばし放置して様子を見る…ということでなにか変わるカモしれません
ちょっと必要があって今再設定していたのですが、やはりかなり不安定なようです。うまくいかないときは何回か繰り返し登録・削除を繰り返すとなんとかなるっぽいです
実行すると、
RuntimeError
error.
という結果になってしまうのですが、何か調べるべきことはありますか?
どうもしばらく前から iCloud の CalDAV API は認証機能でエラーになるようになったようです。これはバグなのかもしれませんが、むしろ Apple ID 導入に向けて認証機能を絞っているのではないかと。OneCalendar という有名な互換アプリも動かなくなってます。困りました…
ここの情報をもとにRubyのソースは書き換えました。とりあえず動いています。Windowsのexeはどうしようかな…
https://stackoverflow.com/questions/57920341/not-able-to-get-current-user-principal-for-user-from-apple-caldav-server
WindowsのexeもOCRAってヤツで作りました。Neriってヤツがうまく動かない…
それにしてもCardDAVのAPIで認証情報をとってそれを使ってCalDAVにアクセスって、単にCalDAVのAPI壊れてるだけやないか…