Google Calendar MCP setup (dedicated account, ad-hoc event sharing)

Status: done (2026-07-13). Account, project, MCP server, and auth are live. 33 events from porto-chapter-calendar.html pushed as a one-off — no automatic sync yet (tracked as a roadmap item in Notes and ideas _jul26.md).

Context

Give Claude Code write access to a new, dedicated Google Calendar so it can create/update events on request, and let site visitors subscribe to that calendar’s public feed. This is separate from porto-chapter-calendar.html’s existing client-side .ics download links (no sync between the two — confirmed ad-hoc only).

Two MCP options were compared:

Public subscription is unrelated to either MCP — it’s a one-time Google Calendar sharing setting that produces a public iCal/webcal URL.

Steps taken

1. New Google account — done

wifitribe.porto.jul26@gmail.com.

Calendar → Settings → Access permissions → “Make available to public”. Subscribe URL format (grab the exact one from Settings → Integrate calendar → Secret/public address in iCal format if not already saved elsewhere):

https://calendar.google.com/calendar/ical/wifitribe.porto.jul26%40gmail.com/public/basic.ics

3. GCP project + OAuth client — done, project id wifitribe-porto-jul26

  1. Project wifitribe-porto-jul26 created under the new account.
  2. Google Calendar API enabled via Console UI (no gcloud CLI available locally).
  3. OAuth consent screen: External audience, scope https://www.googleapis.com/auth/calendar.
  4. OAuth client: Desktop app type, client JSON downloaded.

Gotcha hit: first auth attempt failed with Error 403: access_denied — consent screen was still in “Testing” publishing status, which blocks even the project owner unless explicitly whitelisted. Fix: Console → Audience → Test users → add wifitribe.porto.jul26@gmail.com → retry.

4. Install & configure nspady/google-calendar-mcp — done

5. Verified

Explicitly not done