2004年05月21日

スケジュールの共有

をしようと思った。

仕事場の人間の7割くらいはiCalを使っているので、まずはiCalで共有。
これはWebDAVを使えばいいだけなので、簡単。
http://www.apple.co.jp/articles/tutorial/panther/vol10_5.html

しかし、OS 9という人もいるし、Windowsという人もいる。WindowsにはiCalendar互換のスケジューラーもあるだろうから、当面の課題はOS 9ユーザー。とりあえず見るだけでもということで、 PHP iCalendarをサーバにインストール。
http://phpicalendar.sourceforge.net/nuke/
これも非常に簡単。展開してconfig.inc.phpの
$language
の行をJapaneseに変更して
$calendar_path
をWebDAVのパスに変更しただけ。あとはindex.phpにアクセスしたらあっさりカレンダーを表示。

しかし、OS 9の人はカレンダーを書き込めないというのは不便過ぎるので、iCalendar互換のカレンダーWebアプリを探してみた。結果、シンプルなカレンダーアプリは見つからず、
phpGroupWare
http://www.phpgroupware.org/
eGroupWare
http://www.egroupware.org/
の二つのグループウェアがiCalendar関係のAPIを持っているようだということで、これらをインストール。eGroupWare はphpGroupWare から分岐したプロジェクトなので、両者は非常に似ている。APIもほとんど同じように見える。phpGroupWareのほうはインストールガイドを読むとMySQLにデータベースを手動で作れとか書いてあったが、eGroupWareは事前になんの設定もいらない。展開して、URLにアクセスするだけ。すべてWeb上で設定できる。これは簡単。ユーザーごとに使うアプリケーションを選択できるので、普通のユーザーにはシンプルにカレンダーだけ表示されるようにもできる。

しかし、iCalendar形式でデータを吐き出す方法がわからない。freebusy形式で吐き出すものをちょっといじってみたが全然ダメ。APIをきちんと理解する気力がわかないままなんとなく検索していたら、phpGroupWareにiCalendarで吐き出すphpが含まれていることに気づく。

これをeGroupWareに持って来たらそのまま動いた。
ただしこいつが吐き出すiCalendarはiCalが解釈に失敗するので、ちょっとスクリプトをいじる必要がある。

これで全員のカレンダーをiCalで読めるようになった。