Connecting Google Calendar lets a Bubble app show a user's upcoming events, create events from bookings or tasks, or check availability. This guide walks through what the integration involves, from setting up Google Cloud to calling the Calendar API, and the decisions you'll need to make along the way.
Google and Bubble both update their platforms. Use this as a map, and follow the current Google Calendar API documentation and Bubble manual for exact settings.
You can build this integration yourself, or use Pathfix's Bubble plugins to handle the OAuth and token steps (see Where Pathfix fits). Either way, it has three parts:
Authorization: each user connects their Google account and approves calendar access.
Token handling: your app stores that user's tokens and refreshes them when they expire.
API calls: your app calls the Google Calendar API with the user's access token to read or create events.
Google Calendar offers several scopes with different levels of access. Typical choices include read-only access to calendars and events, or access limited to events. Pick the narrowest scope that supports your feature.
Calendar scopes are classified by Google as sensitive. Apps using them with external users generally need to complete Google's verification. Until then, users may see an unverified app warning and the number of users may be limited. Plan time for this.
Add a "Connect Google Calendar" button in your app. When clicked, it should start the OAuth authorization flow with your client ID, redirect URI and scopes.
To get a refresh token, the authorization request needs to ask for offline access. Without one, the integration will stop working when the first access token expires.
After the user approves, Google redirects back with an authorization code, which is exchanged for tokens server-side.
The user approves calendar access at Google. Your app receives tokens for that user, not their password.
singleEvents=true expands recurring events into individual instances, which is usually what you want for display.
To create events, send a POST to the events endpoint with the event details. Pay attention to time zones; send explicit time zone information rather than relying on defaults.
Google Calendar supports push notifications for changes, which require a publicly reachable HTTPS endpoint and renewing notification channels before they expire. For many Bubble apps, periodic refresh of upcoming events is simpler to start with.
Steps 3, 4 and 6 are the parts most likely to cause trouble in Bubble, and Pathfix has Bubble plugins that handle them.
Set up Google Calendar in Pathfix. In your Pathfix account, select Google Calendar as a provider and enter the App ID and App Secret from your Google Cloud project (step 1 above). Users authorize your own OAuth app.
Install the Pathfix OAuth Connector plugin. It's the primary plugin: it links your app to your Pathfix account and renders the Connect button. Pathfix runs the OAuth flow and stores and refreshes each user's tokens.
Install the Pathfix Google Calendar plugin and add your Pathfix key. It provides preconfigured Calendar API calls, such as creating an event, as Bubble workflow actions and data calls. When an action asks for a user ID, use the current user's unique ID.
Each consumed plugin action counts as an API call in Pathfix. Dates still need to be sent in the ISO format Google expects.
If you need a Calendar endpoint the plugin doesn't offer, you can call it through Bubble's API Connector. Follow the Google Calendar plugin guide for exact setup steps, and see the Pathfix Bubble documentation for options like custom redirect domains and multiple connections per user.
For workflows that react to calendar changes per user, Pathfix Automation can listen for supported user-level webhooks and run workflows in each user's context.