Google Calendar Integration

Ingest Google Meet sessions and transcripts automatically

FastFollow watches your calendar for upcoming meetings and pulls the transcript from Google Drive as soon as Meet finishes recording — typically within 60 seconds of the session ending.

Setup walkthrough

~15 minutes if you already have a Google Cloud project

1

Create a Google Cloud project

In the Google Cloud Console, create a new project (or reuse an existing one). FastFollow needs the Calendar API and Drive API enabled.

  • Enable: Google Calendar API
  • Enable: Google Drive API (required to fetch Meet transcripts stored in Drive)
  • Enable: Google Meet API (for live meeting metadata, optional)
2

Configure the OAuth consent screen

Set up the OAuth consent screen with your organization details. For Google Workspace customers, use the "Internal" user type to avoid Google verification.

  • User type: Internal (Workspace orgs) or External (Gmail/consumer accounts)
  • Add support email and developer contact email
  • Add Authorized domain: fastfollow.ai
3

Create OAuth 2.0 Client ID credentials

Under Credentials → Create Credentials → OAuth client ID, choose "Web application" and configure the authorized redirect URI.

  • Application type: Web application
  • Authorized redirect URI: https://app.fastfollow.ai/api/integrations/google/callback
  • Save the Client ID and Client Secret — these go into FastFollow account settings
4

Authorize from FastFollow

In FastFollow, go to Integrations → Google Calendar → Connect. Sign in with the Google account whose calendar should be ingested.

  • Refresh tokens last indefinitely unless revoked from myaccount.google.com
  • Each user connects their own account — connections do not span the workspace by default
  • For workspace-wide ingestion, see "Domain-wide delegation" below

Required scopes

FastFollow requests only what is necessary for read-only meeting ingestion

ScopeWhy FastFollow needs it
https://www.googleapis.com/auth/calendar.readonlyRead calendar events, attendees, and conference data
https://www.googleapis.com/auth/meetings.space.readonlyRead Google Meet space metadata for live meetings
https://www.googleapis.com/auth/drive.readonlyFetch Meet transcript files (Meet stores transcripts in the host’s Drive)
openid email profileIdentify the authorizing user

Ingestion modes

Push notifications by default, with polling as a fallback

Push notifications (recommended)

FastFollow registers a Calendar Watch via the Google Calendar API. Google posts every event change to /api/webhooks/calendar within seconds.

  • Near-real-time meeting detection
  • Subscriptions expire every 7 days and renew automatically via cron
  • No polling overhead

Polling fallback

If push notifications cannot be registered (network egress restrictions, allowlist requirements), FastFollow falls back to polling every 5 minutes.

  • Higher latency (up to 5 min) for meeting detection
  • Higher API quota usage on the connecting org
  • Useful for restricted environments

Workspace domain-wide delegation

Ingest every meeting across an entire Google Workspace org from a single connection

By default, every user connects their own Google account. For Workspace customers who want centralized ingestion across the org, FastFollow supports domain-wide delegation via a service account.

  1. 1Domain admin opens admin.google.com → Security → API controls → Domain-wide delegation
  2. 2Add a new API client using the Client ID from your OAuth credentials
  3. 3Authorize scopes: calendar.readonly, drive.readonly, meetings.space.readonly
  4. 4In FastFollow, switch the Google Calendar connection to "Workspace mode" and provide the service-account JSON

Domain-wide delegation grants FastFollow access to every user's calendar in your org. Only admins should configure this, and only after reviewing FastFollow's security posture and privacy policy.

Troubleshooting

The most common Google Calendar integration errors

access_denied

User clicks Cancel or Google blocks the consent screen.

Fix: If the consent screen shows a "verification required" banner, your OAuth app is in External + Testing mode. Either move to Production (requires Google verification for sensitive scopes), or restrict the user type to Internal for Workspace orgs.

invalid_grant

Refresh token returns an error during background sync.

Fix: The user revoked access from myaccount.google.com, the password changed, or the account was suspended. Have the user reconnect from FastFollow → Integrations → Google Calendar.

insufficientPermissions

Calendar events appear but transcripts never ingest.

Fix: Drive scope was denied. FastFollow needs drive.readonly to fetch Meet transcripts (Google stores them in the meeting organizer’s Drive). Reconnect and grant all scopes.

watch_renewal_failed

Push notifications stop arriving after 7 days.

Fix: FastFollow renews subscriptions every 6 days via a cron job. If renewal fails for 3+ consecutive runs, the integration falls back to polling. Check the cron logs at /admin/health or contact support.

rate_limit_exceeded

Initial backfill triggers 429s.

Fix: Google enforces per-user quotas (1,000,000 queries/day default). FastFollow honors these with exponential backoff. For large historical backfills, contact support to schedule outside business hours.