Feel Physics Backyard

HoloLensの出張授業をする会社で、教材を開発しています

Google Calendar APIで予定のリストを取得してみた

新しい記事があります。

リンク: 090629-Windowsで今日の予定をGoogleカレンダーから取得し表示する: Non-programmer's Ruby in Pocket.

Googleカレンダーの返してきたさまざまな種類の予定から時間指定の予定だけを正規表現で取り出している


090530googlecalendarapiabst

Google Calendar APIを使うことがあったので、参考になったページや情報を列挙しておく。

(なお、ここでいうGoogle Calendar APIとは、REST形式でリクエストを送って、レスポンスをXML形式で受け取るためのAPIである。他にもホームページに小さいカレンダーを貼る方法などがあるようだが、本記事はそれらには触れない。)

 

いちばん参考になるのは、やはり本家のリファレンスであった。

リンク: API Reference Guide - Google Calendar APIs and Tools - Google Code.

このドキュメントはGoogle Calendar Data APIの詳しいリファレンスを提供します。

◆Event feeds

090530googlecalendarapidetail

私は予定(Event)をリストとして取り出したかったのだが、このような目的のために「Event feeds」というものが用意されている。

### Event feeds ###

event feedの特定の表現をリクエストするには、カレンダーに送るURIの中でvisibility値とprojection値の両方を指定します。

 

◎visibility値

visibility値は公開・非公開といったことを指定する。

指定できる値は「public」「private」「private-magicCookie 」の3種類。だが、Googleカレンダーの限定公開URLには最初からmagicCookieがセットされているので、「private-magicCookie 」を私は使った。

◎projection値

projection値は欲しいデータの詳細度を指定する。

full」を指定すれば得られるすべての情報が返ってくるし、「free-busy」はその名の通り予定の有無しかわからない。指定できるのは「full」「full-noattendees」「composite」「attendees-only」「basic」の6種類。

◎パラメータ

クエリ(REST、URI)のパラメータとして「orderby」「start-min」「start-max」などが使用できる。例えば2000年の予定をすべて取得したければ以下のように指定すればよい。

start-min=2000-1-1&start-max=2000-12-31

ちなみにデフォルトでは1970年から2030年までのすべての予定(Event)をとってきてしまう。これはサーバーに負荷をかけてしまわないのだろうか?ちょっと心配になる。

Google Data API

090530googlecalendarapidataapi

実はGoogle Calendar Data APIGoogle Data APIの一種と位置づけられており、Google Data APIのパラメータも指定することができる。これについても本家のリファレンスが詳しい。

リンク: Protocol Reference - Google Data APIs - Google Code.

このドキュメントは様々なGoogle Data APIで使われるプロトコルについて詳述する。クエリや結果が実際にどのようなものか、についても触れる。

例えば「max-results」パラメータを指定することで、結果の件数を指定することができる。しかし、他にもたくさんのパラメータがあるので、私はあまり深入りすることができなかった。