こらない

2006-04-28 (金)

Google Calendar Button覚え書き

GoogleがスタートさせたGoogle Calendar(ベータ版)では、外部サイトにGoogle Calendar Buttonを置いて、そこからのリンクの形で「イベント追加」が可能。
その覚え書き。

Google Calendarでは、

http://www.google.com/calendar/event?text=タイトル&dates=20060428

みたいなアドレス(上記は例であって実際は違う)にアクセスすると、スケジュール追加ページが表示される。
その仕様の詳細は、Google Calendar: Share an individual event on your site

テキスト(日本語)

text(イベントタイトル)、details(詳細)、location(場所)には日本語の文字を使用可能。
文字コードはUTF-8。
自分の環境(Mac OS X 10.4 Firefox1.5)だけで言うと、Google Calendar Buttonを表示させるページがUTF-8の場合は、そのまま「text=タイトル」としてしまってOK。
eucの場合は、UTF-8にした後にURIエンコード。

どちらにしても、「=」とか「&」のような記号文字はエンコードする必要があるので、エンコードしちゃった方が安全かも。

detailsには、「シンプルHTML」が許可されているのだけど、<br>(改行)以外には発見できず。
<em>や<strong>、あるいは<blockquote>、もしくは<b>や<i>が許可されてたりするのかな、と思ったけど、どれもダメでした(自動で削除される)。

日付

2006年3月7日から2006年3月10日の場合は、「20060307/20060311」(20060310ではない)。
終了日に1日足すのは、iCalendarの場合と同じ。

じゃあ、2006年3月7日の1日だけの場合はというと、上記Google Calendarのガイドには「20060307/20060307」とある。
iCalendarの場合、これは「20060307/20060308」となる。
「1日足す」という計算は意外と面倒なので、「その日1日」の場合だけ特別に「20060307/20060307」を許してるのかな。
ちなみに、iCalendarの仕様通り「20060307/20060308」を使っても「2006年3月7日の1日」として扱われた(2006-04-28現在)ので、プログラム等で自動で日付を作成する場合は「20060307/20060308」で構わなさそう。

日付(時間付き)

2006年3月7日の午後1時から3時までの場合は、フォーマットとしては「20060307T130000Z/20060307T150000Z」。
日付の「2006-03-07」と時刻の「13:00:00」を「T」でつないで、最後に「Z」(TもZも大文字)、ハイフンとコロンは抜いた数字のみのフォーマットで、これもiCalendar準拠。
ただし、日本時間ではなく、UTC(「協定世界時」昔の世界標準時のようなもの)を用いるので、「日本時間午後1時から3時」の場合、9時間引いて「日本時間午前4時から6時」、つまり「20060307T040000Z/20060307T060000Z」が正解(あとはGoogleさんがちゃんと処理してくれる)。

ちなみに、「4月28日午前2時」の代わりに「4月27日26時」も受け付けてくれる。
29時までOKで、30時だとNGだったのだけど、「29」や「30」という数字によってOK/NGなのか、何か別の計算によるのかは未検証。

そんなわけで、だいたいやり方が分かったので、アタシがいぢっているbloc - スケジュール管理・発信・共有サービスにも、のちほどこのGoogle Calendar Buttonを表示させてみます。
(あと、Yahoo!カレンダーも同様のことができそうなので、そちらにも対応してみる)

2006-04-28 (金) UP

コメント