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 calendar
GET /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 page
GET /oauth/doneStatic success page shown after the Google callback stores tokens.
Try the connect flow
dev toolMints 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/availabilityNot 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" }]
}'