# Google Calendar setup for PopMCP

You end up pasting a Google OAuth Client ID and Client Secret from a Web application client you register in the Google Cloud console.

- Auth: OAuth authorization
- Setup time: 10 min
- API base URL: https://www.googleapis.com/calendar/v3
- Credentials screen: https://console.cloud.google.com/auth/clients
- Provider docs: https://developers.google.com/workspace/calendar/api/guides/overview

## Approval required before this works

Google's Trust and Safety team must verify your OAuth app before it can request the sensitive Calendar scopes (calendar, calendar.events) from users outside your own test list or Workspace organization.

- Typical wait: Google states sensitive scope verification typically takes 3-5 business days; developers regularly report several weeks when a demo video or privacy policy has to be resubmitted
- Cost: Free. Calendar scopes are sensitive, not restricted, so no third-party CASA security assessment is involved.
- Blocked until approved: Public distribution only. Until verification passes, an external OAuth app stays capped at its test-user list (100 accounts), every user sees the unverified-app warning screen, and an app left in Testing status is issued refresh tokens that expire after 7 days, so long-lived unattended syncing breaks weekly.
- Works meanwhile: Everything functional. Enable the Calendar API, create OAuth credentials, add yourself and colleagues as test users, and read/write calendars and events immediately at full quota. An app configured with the 'Internal' user type inside your own Workspace organization is not put through verification at all.

## Before you begin

- A Google account, plus a Google Cloud project you own (free, no billing card needed)
- Owner or Editor role on that Cloud project. Viewer cannot create OAuth clients
- The PopMCP callback URL from the Google Calendar connect form. Copy it before you start
- The Internal audience requires a Google Workspace organisation. Personal accounts get External only

## Get your credentials

### 1. Create or select a Google Cloud project

Open the Cloud console and pick a project from the picker in the top bar, or click New project. Keep that same project selected for every step below.

Screen: https://console.cloud.google.com/projectcreate

### 2. Enable the Google Calendar API

Go to APIs & Services → Library, search for Google Calendar API and open its card. Click Enable.

Screen: https://console.cloud.google.com/flows/enableapi?apiid=calendar-json.googleapis.com

### 3. Fill in Branding, then publish the app on Audience

Open Google Auth Platform → Branding and enter App name, User support email and a developer contact address, then Save. Switch to Audience and click Publish app if Publishing status shows Testing.

Screen: https://console.cloud.google.com/auth/audience

### 4. Open Clients and start a new OAuth client

In the Google Auth Platform nav click Clients, then click Create client.

Screen: https://console.cloud.google.com/auth/clients

### 5. Register a Web application client with the callback URL

Set Application type to Web application and give the client a recognisable name. Under Authorized redirect URIs click Add URI, paste the callback URL from PopMCP's Google Calendar connect form exactly as shown, then click Create.

Screen: https://console.cloud.google.com/auth/clients/create

### 6. Copy the client ID and secret into PopMCP

Copy Client ID and Client secret from the OAuth client created dialog into PopMCP's OAuth Client ID and OAuth Client Secret fields. If the dialog is already closed, open the client and click Add secret.

## Fields PopMCP asks for

- OAuth Client ID (clientId) [required]: Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above under Authorized redirect URIs. Enable the Google Calendar API on the same project first (APIs & Services → Library → Google Calendar API → Enable), or the Calendar permission won't be offered.
- OAuth Client Secret (clientSecret) [required]: Shown once, in the popup right after you create the client. Google hashes it and never shows it again. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue.

## Callback URL to register

https://app.popmcp.com/api/providers/google/callback

## Scopes requested

- https://www.googleapis.com/auth/calendar

## Verify

In PopMCP, click Connect, choose the Google account, click through the "Google hasn't verified this app" screen with Advanced → Go to (app), and grant calendar access. The connector shows Connected and an upcoming-events tool returns real entries from your calendar.

## Troubleshooting

### Error 400: redirect_uri_mismatch

Cause: The Authorized redirect URI on the client differs from the callback URL PopMCP sends.

Fix: Paste the callback URL straight from the PopMCP connect form into Clients → your client → Authorized redirect URIs. Check http vs https and the trailing slash.

### Works for 7 days then invalid_grant

Cause: The app was left in Testing on the Audience page, so Google expires the refresh token seven days after consent.

Fix: Go to Google Auth Platform → Audience → Publish app, then reconnect in PopMCP.

### 403 accessNotConfigured

Cause: The Google Calendar API is not enabled on the project that owns the OAuth client.

Fix: Go to APIs & Services → Library → Google Calendar API → Enable on the same project, then retry.

### 403 rateLimitExceeded when syncing many calendars

Cause: The ceiling of 600 requests per minute per user was hit.

Fix: Retry with exponential backoff and narrow the time window or calendar list you ask PopMCP to sweep.

### The client secret is no longer visible in full

Cause: Google hashes the secret after creation and only ever shows the last four characters.

Fix: Open the client in Clients and click Add secret to mint a fresh one, then paste it into PopMCP.

---

Source: https://www.docs.popmcp.com/docs/integrations/google-calendar/