Google Calendar API は、Google カレンダーの予定をプログラムから作成・更新・削除するための API だ。スケジュール管理を自前で実装する代わりに、すでに多くのユーザーが日常的に使っているカレンダーに乗せられるのが大きい。

予約システムとの相性

代表的な活用先は予約システムだ。予約が入ったら API でカレンダーにイベントを作り、変更や取り消しも同期させる。フリー/ビジー情報を取得できるので「空いている時間だけを予約候補として見せる」処理も組める。プッシュ通知を使えばカレンダー側の変更をアプリが検知でき、ポーリングに頼らない設計が可能になる。繰り返し予定の扱いも API でサポートされている。

繰り返し予定という難所

実装で手こずりやすいのが繰り返し予定だ。「毎週月曜」のような定期イベントは一つのレコードとして表現される一方、その中の特定の一回だけを変更・削除した「例外」インスタンスは別扱いになる。予約システムでこれを正しく処理しないと、ある日の予定だけ消したつもりがシリーズ全体に影響する、といった事故につながる。例外インスタンスの考え方を最初に押さえておきたい。

料金とクォータ

個人の Google アカウントで無料利用でき、API 呼び出しはデイリークォータ制。一般的なアプリの使い方なら枠は十分に広く、コストを気にする場面は少ない。ただしクォータ超過時のエラーハンドリングは実装しておきたい。タイムゾーンの扱いもバグの温床で、イベントの日時には必ずタイムゾーンを明示し、サーバーのロケールに依存させないことが安全だ。

向かない組織

前提として、ユーザーが Google カレンダーを使っていることが必要になる。社内で Microsoft 365 を標準にしている組織のスケジュール管理を作るなら、Calendar API ではなく Microsoft Graph 側を見るべきだ。導入対象のユーザー層がどのカレンダーを使っているかを最初に確認しておくと、土台選びを間違えずに済む。