Reunion · Calendar

Google Calendar OAuth + availability engine for the group-trip agent. Two surfaces: a browser OAuth loop and a JSON availability endpoint called by RocketRide.

Connect a calendarGET /connect?s=…

Google OAuth consent. Requires a signed state token — RocketRide receives these as connect_url on unresolved participants. Use the form below to mint one for testing.

OAuth complete pageGET /oauth/done

Static success page shown after the Google callback stores tokens.

Try the connect flow

dev tool

Mints a signed state token for a test phone, then forwards you to Google's consent screen. You still need a Google account in ALLOWED_TEST_EMAILS to complete consent.

Availability API

POST /api/availability

Not a clickable page — POST endpoint. Returns per-participant busy/free + common_free, or a signed connect_url when tokens are missing. See the contract for the full shape.

curl -X POST $CALENDAR_BASE_URL/api/availability \
  -H "x-internal-key: $CALENDAR_INTERNAL_KEY" \
  -H "content-type: application/json" \
  -d '{
    "trip_id": "abc-123",
    "window": { "start": "2026-07-10", "end": "2026-07-20" },
    "participants": [{ "phone": "+14155551234" }]
  }'