崖っぷちの男

たぶん技術っぽいネタ。ブログ名が決められない

IT勉強会カレンダーの東京版を自分で何とかしてみる

勉強会にまだ一度も参加したことがないので、興味のあるイベントがあれば行ってみたいなーと思っています。


それで調べていたら IT 勉強会カレンダー をというものがあることを知って、一時期は自分の Google カレンダーに追加していたのですが、量が多すぎるので結局見なくなってしまいました。


そして最近になってやっぱりチェックしないと、と思ったのでまた追加することにしようと考え、「東京のだけ表示するやつがどこかにあったよなあ…」と思って探してみました。


でも、それらしいものは見つけたのですが、何だかちゃんとデータが入っていないような。Google カレンダーについては詳しくないので何か勘違いしているだけなのかもしれませんが。


で色々調べた結果、「もう自分で自鯖に用意してとってこればええやん」と思ったのでその方法をメモっときます。

ics をダウンロードしちゃう

調べていて分かったのは以下の [フィルタ文字] に文字列を入れておくと、その文字列が入った予定だけが入った ics をダウンロードできるってことです。

http://www.google.com/calendar/ical/fvijvohm91uifvd9hratehf65k@group.calendar.google.com/public/full?q="[フィルタ文字列]"


この [フィルタ文字列] を東京にして、以下のようなシェルスクリプトで Web サーバの公開ディレクトリのどこかにダウンロードします。

#!/bin/bash

curl -o "/[公開ディレクトリのどこか]/hogehoge.ics" "http://www.google.com/calendar/ical/fvijvohm91uifvd9hratehf65k@group.calendar.google.com/public/full?q=%22%e6%9d%b1%e4%ba%ac%22"


そしてこのスクリプトを cron に追加しておきます。これで一定時間ごとに更新されるはずです。

PHP でレスポンスヘッダーに UTF-8 を指定する

この ics を Google カレンダーで追加してみたのですが、うまく読み込まないので解決法を調べていたら、こちらの方がずばり書いていらっしゃいました。


SE奮闘記: Google カレンダーでiCal形式を読み込むと文字化け


レスポンスヘッダに文字コードを指定しないとダメってことです。こちらの方が php スクリプトも作ってくださっているので、そのまま使っちゃいます。最初に書いてある方ではなくて、一番最後に載っている「2009/08/28 追記」の方です。


これを ics と同じディレクトリに ical.php としておいて、以下のような URL でアクセスすればうまくいく…はずです。はずっていうのは、Google カレンダーで「更新」を押してもすぐには更新されないっぽいので、うまく行っているのか実は分かんないからです。

http://[サーバ]/[ical.phpまでのパス]/ical.php?=hogehoge.ics


これで勉強会の予定を把握できるようになりました。平日昼間のイベントは有休とらないと行けませんが、夜や土日なら行けるのでチェックしてみます。


昨日は会社の同期と シュルレアリスム展 に行っていました。部屋ごとに掲示されている解説のどれ一つとして意味がほとんど理解できませんでした。外国語の解説は英語でなくてフランス語なあたりが何ともいい感じです。シュールな絵ばっかりって大丈夫かなと思ったんですが、意味が分からない分、意味を考えてしまう楽しさみたいなのがありました。