最初に使いだした予定表は Palm だったものの、 Palm を使わなくなったタイミングで予定表自体を使わなくなっていました。 Palm に慣れすぎたせいか、パソコンにある予定表はあくまでバックアップというか、持ち歩けない予定表に意味はないというか。そんなわけでその後 iCal や Google Calendar を使おうとしては挫折してました。
が、さすがに iPhone を手に入れると予定表を使いたい、かなぁということで、だったら iCloud や Google Calendar よりも iCal Server で頑張るべきだろう、と弄ってみました。といっても 10.7.3 にしたおかげか基本的には共有カレンダーを管理するに準じるだけ。変なことをしてなきゃこれだけで快適に使えるようになるはずです。
じゃあなんでこんなエントリを書くかというと、俺が iCal Server を誤解していたり、変なことをしていたりしたから。俺の常識は Apple 様の非常識というか…。
ということでまずは俺の誤解
- iCal Server は Lion Mail Server と連動しない
社会人になってから Lotus Domino/Notes や Microsoft Exchange/Outlook といった仕組みでメールや予定表を使っている俺としては当然 iCal Server (というか CalDAV か)は Lion Mail Server と連動して動くものだと思っていました。それに数少ない設定項目のひとつが「メールアドレスを使った参加依頼を許可」だもの、そりゃ連動すると思うじゃない。
ところが、 iCal Server 上にアカウントがあるユーザーに対してはメールで予定に対する参加依頼は飛ばず iCal (というか CalDav クライアント)内で完結しちゃうのでした。前述の「メールアドレスを使った参加依頼」は iCal Server 上にアカウントがないユーザーに対して参加依頼を飛ばす仕組みなんだそーです(この機能は試してないからホントにそうなのかわかんないけど)。というかよく読むと共有カレンダーを管理するにちゃんと
iCal サーバアカウントを持たない出席者にも、メールで出席を依頼することができます。
って書いてあるんですけどね。どうせドキュメントのミスだろうとナメてたのが敗因でした(笑)。
で、俺のやった変なこと
- Lion Server 上の複数のアカウントに同一のメールアドレスを設定してた
Lion Server には自分用の(非常用)ローカルアカウントと(常用) Open Directory アカウントが作られていて、でもどっちも俺のアカウントなのでメールアドレスは同一にしてたんですよ。そしたら iCal Server ちゃんは作成された予定に登録された出席者のメールアドレスを読んで、賢くローカル (/Local/Default)と Open Directory (/LDAPv3/127.0.0.1) の両方をなめ、誰が出席者なのかを決定するということをしているようで、ローカルと Open Directory の両方でアカウントを見つけてしまって困ってしまった、ようです。
で、俺の誤解通りに iCal Server が動けば「参加者を追加して保存すると invite のメールが追加された参加者に飛ぶので、参加者はそのメールから予定を知ることが出来る」のだけど iCal Server はアカウントがある場合はメールを飛ばさないので、そもそもこんな動作はありえない。
一方、本来通りに iCal Server が動けば「参加者を追加して保存すると iCal 上で通知が表示されるので、参加者はそこから予定を知ることが出来る」のだけど、 iCal Server は同一メールアドレスの複数のアカウントを発見してしまったせいで通知が出来ずにこの動作が出来てなかった。
ということから
- 予定を作成して、参加者を追加して保存してもなにも起こらない
という結果が産まれてしまい、果たしてどこをどーれば解決するのだかさっぱり解らない、という状況に陥ってしまったのでした。
複数のアカウントに同じメールアドレスが設定されていたことが原因で、片方のアカウントのメールアドレスを消したら期待通りに通知されるようになりました。なんでこれに気付けたか、というと iCal Server は http でおしゃべりするだけのことはあって、デフォルトで Web のインターフェースも用意されているのです。で、この Web インターフェースでもやっぱり参加者への通知が出来てなかったのですが、
Lion Server の Web で標準で用意されているマイページを一回編集すると参加者への通知がされるようになるよ
みたいな回答を見かけたんですよ。で、それを複数のアカウントでやってみたら、確かに Web インターフェースから予定を作成して参加者を追加すると、ちゃんとその予定が iCal にも iOS にも通知されるようになった、と。じゃあ作成された予定はなにが違うのだろう、といろいろ見てたら iCal や iOS から作られた予定の Open Directory のつもりだった参加者が ローカルの参加者となっていたので、これか、と。
ちなみに予定の参加者ってのは奥さんですが、思いついた予定や ToDo をすぐに奥さんと共有出来るというのは思ってたよりも便利でした。今まではメールでやり取りしてたんだけど、メールだけだとやっぱり忘れちゃうんですよね。じゃあそこは Google Calendar で良いじゃんって感じですが、 iCal と iOS で同じ予定表を同じような感覚で扱えて、かつ、 iCal と iOS の両方でプッシュ通知をしてくれるってところがキモなんでしょう。…だったら iCloud でもいいんでしょうけど、プライベートなデータは自分の支配下に置いておきたいって感じかな、プッシュ通知しといて支配下もなにもないんだけど(笑)