だ。ログ。

開発とかスノボとかやきうとか。

各デバイスのカレンダーにPHPから動的にデータを登録する

なかなかそれっぽいググり方が出来なかった自戒も込めて。
まず、カレンダーは形式が決まっていてXMLではないが書き方のお作法がある。
そのお作法にしたがって書く事が要点。

ファイル形式は.icsで出力する。そのファイルをブラウザで読み込むと各デバイスOSがどうする?と聴いてくるので後はユーザーの操作に任せる。

一番簡単なカレンダー形式の確認方法(Windows)

1. OUTLOOKを開く
2. OUTLOOKの予定メニュー下部の予定表を開く
3. 適当な日付に予定を作る
4. 作った予定をカレンダー一覧からダブルクリックで別ウィンドウを表示させる
5. 別ウィンドウの予定のファイルタブから名前を付けて保存
6. 保存したhoge.icsをエディタで開く。

と言うのが定石。とりあえずまず自分が作った予定がどのような形式で書かれているか。と言う事を確認しておくと良い。
んで、PHPで動的に出したい場合は以下。

$buff ="エクスポートしたics形式のデータをそのまま貼り付ける";
header("Content-Type: text/Calendar; charset=utf-8");
header("Content-Disposition: inline; filename=1234.ics");
header("HTTP/1.0 200 OK", true, 200);
echo $buff;

buffの部分はかなり長くなるので割愛する。
どこに何の情報が入っているか確認し動的に変更していけばカレンダー登録にたどり着ける。
しかし各デバイスでこの辺がマチマチでなかったのって初めて知った。。
この辺に詳しい説明はある
ja.wikipedia.org