まずはこのURLを見てみましょう
中身はiCalender形式のテキストファイルです
文字コードはUTF-8ですね
これが正常に読み込める環境は動作確認済環境
・Mac iCal
・MS outlook
・YagoonTime Pro
・Googleカレンダー(URLインポート)
たぶん他の.icsを扱えるソフトでも普通に読み込めると思います。
このicsファイルは
mySQL > PHP > ics と動的に生成しています。
http://67.org/ws/workshop/schedule.html
このページの作成に使っているデータそのものなので、常に最新の情報になります。
上記のicsクライアントの中で、Googleカレンダーに対応させるためには、いろいろとポイントがあります。
・開始時刻をUTCで表記
時刻の表記を世界標準時で指定します
タイムゾーンは日本にします。これで自動的に日本時間になります。
逆にDBからの出力時に世界標準時に変換しています。
X-WR-TIMEZONE:Asia/Tokyo
・UTCで表記しているよ宣言
DTSTAMP:20090404T152833Z
行末に Z をつけます。
・終了時刻を削除
・イベント時間(duration)を新しく追加
予定に対して開始時刻と終了時刻 という表現ではなく
DTSTART:20090405T020000Z
DURATION:PT7H0M0S
開始時刻+継続時間 という表現を使います。
GoogleカレンダーがiCalender形式にフル対応しているわけではないのがミソです。
村田くん<お疲れさまでした!