MIT LicenseBuilt for apps and AI agents that use Google Calendar

ローカル環境で動く 開発用 Google Calendar API

Google Calendar API v3 とローカル OAuth が 1 つのプロセスで動きます。Google アカウントや外部通信なしで開発やテストができます。

Calendar API 連携の開発がローカル環境で完結127.0.0.1:4173

アプリ

Google SDK とテスト

Google Calendar

接続不要

  • OAuth 認可
  • イベント
  • 繰り返しイベント
  • FreeBusy
  • 差分同期
  • Webhook

Calendarpit

ローカルサーバー (127.0.0.1)

Google SDK はそのまま使い、接続先だけを 127.0.0.1 の Calendarpit に向けます。

Calendarpit が必要な理由

Google カレンダーと連携するアプリや AI エージェントの開発では、認証の設定やテスト用データの準備に手間がかかります。実際のカレンダーでは、同じ状態で何度も試すのも簡単ではありません。Calendarpit なら、Google の認証情報なしで、Fixture を使ってローカルで繰り返し試せます。

実際の Google に接続する場合

  • Google アカウント、Cloud プロジェクト、OAuth の事前設定が必要
  • ネットワーク接続や共有の API クォータに左右される
  • 共有カレンダーのデータがテストごとに変わり、同じ状態を再現しにくい

Calendarpit を使う場合

  • 認証情報なしでローカルのテストユーザーとしてログイン
  • 127.0.0.1 の単一プロセスで動き、外部通信が不要
  • Fixture とリセットで毎回同じデータからテストを開始

使い方の流れ

Calendarpit を起動

1 つのプロセスで、API、ローカル OAuth、管理画面が http://127.0.0.1:4173 で動きます。

brew install iktakahiro/tap/calendarpit
calendarpit serve
docker run --rm -p 127.0.0.1:4173:4173 ghcr.io/iktakahiro/calendarpit:latest

接続先を Calendarpit に向ける

Google SDK はそのまま使い、OAuth と API のエンドポイントだけを上書きします。@googleapis/calendar と google-auth-library の場合は次のとおりです。

const origin = 'http://127.0.0.1:4173';
const auth = new OAuth2Client({
  clientId: 'sample-app',
  clientSecret: 'local-sample-secret',
  redirectUri: 'http://127.0.0.1:4175/callback',
  endpoints: {
    oauth2AuthBaseUrl: `${origin}/oauth/authorize`,
    oauth2TokenUrl: `${origin}/oauth/token`,
  },
});
const api = calendar({ version: 'v3', auth, rootUrl: origin });

すべてのエンドポイントはアプリを接続するで、Python、Go、Java、.NET の例は SDK の使用例で説明しています。

Fixture を使ってテスト

テストのたびに起動時の Fixture へリセットし、リクエストは管理画面で確認します。

curl -X POST http://127.0.0.1:4173/__calendarpit/reset \
  -H "Content-Type: application/json" \
  -d '{}'

Calendarpit の機能

Calendarpit でカレンダーアプリ開発を始める

Calendarpit はローカル開発と自動テスト専用のサーバーです。ループバック上で Google Calendar API v3 の定義されたサブセットを提供します。