Meeting Notes to Calendar with Claude
Connect Google Calendar to Claude via MCP to turn meeting notes into events.
Introduction
30 Second Summary
After every meeting, there's a scramble to transfer action items and deadlines into your calendar. It's the kind of repetitive work that eats into your productivity one event at a time.
In this project, you will connect Google's official Calendar MCP server to Claude so that one prompt can read your meeting notes, extract action items, and schedule them directly on your Google Calendar.
What You'll Build
A fully automated meeting-to-calendar workflow powered by Claude and the Model Context Protocol (MCP).
By the end of this project, you'll have:
- A configured Google Cloud project with the Calendar MCP API enabled.
- OAuth 2.0 credentials connecting Claude to your Google Calendar.
- A live Custom Connector in Claude.ai for Google Calendar.
- Secret Mission: Use Claude to find optimal meeting times and schedule events with attendees and Google Meet links.
Are there any prerequisites?
You'll need a Claude Pro subscription ($20/month) or higher, the Granola MCP already connected to Claude, and a Google account with Google Calendar.
Create a Google Cloud Project
Google's Calendar MCP server is a remote service that lets Claude interact with your calendar. For Claude to use it, the server needs authentication credentials that prove you've given permission.
Those credentials live inside a Google Cloud project. In this step, you'll create a project and enable the two APIs that power the Calendar MCP server.
In this step, get ready to:
- Create a Google Cloud project.
- Enable the Google Calendar API.
- Enable the Google Calendar MCP API.
Create a new Google Cloud project
A Google Cloud project is a container that holds your APIs and credentials. You only need one for this entire setup.
- Open your browser and go to console.cloud.google.com.
- Sign in with the Google account that owns your Google Calendar.
- Click the project dropdown at the top of the page (it may say "Select a project" or show an existing project name).
- Click New Project.
- In the Project name field, enter Claude Calendar MCP.
- Leave all other fields at their defaults.
- Click Create.
- Wait a few seconds for the project to be created. A notification appears in the top right when it's done.
- Click the project dropdown again at the top of the page and select Claude Calendar MCP to make sure it's your active project.
No billing required
You do not need to enable billing on this Google Cloud project. The Calendar API and Calendar MCP API are free for this use case.
🙋♀️ Don't see the New Project button?
Make sure you're looking at the project picker popup (the modal that appears after clicking the dropdown at the top). New Project appears in the top right corner of that popup.
If you still can't find it, try going directly to the Manage Resources page by searching "Manage Resources" in the console search bar.
help me find the New Project button in Google Cloud Console
Enable the Google Calendar API
The Calendar MCP server relies on two APIs. The first is the standard Google Calendar API, which provides the underlying calendar data access.
- In the search bar at the top of the Google Cloud Console, type Google Calendar API.
- Click on Google Calendar API in the search results.
- Click Enable.
- Wait for it to activate. You'll see a dashboard page once the API is enabled.
Enable the Google Calendar MCP API
The second API is the Calendar MCP API itself. This is the one that exposes the MCP endpoint Claude connects to.
- In the search bar at the top of the console, type Google Calendar MCP API.
- Click on Google Calendar MCP API in the search results.
- Click Enable.
- Wait for it to activate.
What are these two APIs?
The Google Calendar API (calendar-json.googleapis.com) provides the core calendar data layer. The Google Calendar MCP API (calendarmcp.googleapis.com) adds the MCP protocol layer on top, so AI assistants like Claude can interact with your calendar using standard MCP tools.
Both need to be enabled for the Calendar MCP server to work.
- To verify both APIs are active, navigate to APIs and Services in the left sidebar, then click Enabled APIs.
- Confirm that both Google Calendar API and Google Calendar MCP API appear in the list.
Only seeing one API enabled?
Double check that your Claude Calendar MCP project is still selected in the dropdown at the top. If you accidentally switched to a different project, the API you just enabled won't show up.
If the search didn't find one of the APIs, make sure you're typing the full name exactly (Google Calendar API or Google Calendar MCP API).
help me enable both Calendar APIs in my Google Cloud project
Your Google Cloud project is ready with both APIs enabled. Next up, you'll create the OAuth credentials that let Claude securely access your calendar on your behalf.
Configure OAuth Authentication
Your Google Cloud project is set up with both Calendar APIs enabled. Now you need to give Claude permission to access your calendar on your behalf.
Google uses OAuth 2.0 to manage third-party access to your data. You'll configure a consent screen that defines what calendar data can be accessed, then create credentials that Claude will use to authenticate.
In this step, get ready to:
- Configure the OAuth consent screen with calendar-specific scopes.
- Create OAuth 2.0 client credentials for Claude to use.
Set up the OAuth consent screen
The consent screen defines your app's identity and what calendar data it can access. Google requires this before any OAuth credentials can be issued.
- In the Google Cloud Console, click the navigation menu (hamburger icon) in the top left.
- Select Google Auth Platform from the sidebar, then click Branding.
Don't see Google Auth Platform?
If you don't see Google Auth Platform in the sidebar, try navigating to APIs & Services > OAuth consent screen instead. Google occasionally updates the Console layout, so the exact path may vary slightly.
- If you see a message that says "Google Auth Platform not configured yet", click Get Started.
- Under App name, enter Claude Calendar.
- Under User support email, enter your own email address.
- For Audience, select External as the user type.
Why External?
Selecting External means your app can be used by any Google account, not just accounts within a Workspace organization. Since you're using a personal Google account, External is the correct choice.
- Click Audience in the left sidebar.
- Under Test users, click Add users.
- Enter your own email address in the field.
- Click Save.
Why add yourself as a test user?
While your app is in "testing" mode (not published to production), only email addresses listed as test users can authorize access. Adding your own email ensures you can complete the authentication flow in the next step.
- Click Data Access in the left sidebar.
- Click Add or Remove Scopes.
- In the panel that appears, scroll down to Manually add scopes.
- Paste the following scope into the text field:
https://www.googleapis.com/auth/calendar.calendarlist.readonly
- Paste the second scope:
https://www.googleapis.com/auth/calendar.events.freebusy
- Paste the third scope:
https://www.googleapis.com/auth/calendar.events.readonly
- Click Add to Table.
- Click Update.
- Back on the Data Access page, click Save.
What are scopes?
Scopes define the specific permissions your app is requesting. These three scopes give Claude read-only access to your calendar list, event availability, and event details.
The Calendar MCP server handles write operations (like creating events) through its own authorization layer. You only need to declare these read scopes on the consent screen.
You should see all three scopes listed on your Data Access page.
Create OAuth 2.0 client credentials
Now you'll create the actual credentials that Claude uses to identify itself when requesting calendar access.
- In the left sidebar under Google Auth Platform, click Clients.
- Click Create Client.
- Select Web application as the application type.
- In the Name field, enter Claude Calendar Connector.
- Scroll down to the Authorized redirect URIs section.
- Click + Add URI.
- Paste this URI into the field:
https://claude.ai/api/mcp/auth_callback
What is a redirect URI?
After you authorize access through Google's sign-in screen, Google needs to know where to send you back. This redirect URI tells Google to return you to Claude.ai after authentication is complete.
- Click Create.
- A dialog appears showing your Client ID and Client Secret.
- Copy both values and save them somewhere safe (such as a notes app or text file).
Keep your credentials secure
Your Client ID ends in .apps.googleusercontent.com. Your Client Secret is a shorter alphanumeric string.
You'll need both values in the next step to connect Claude to Google Calendar. Do not share them publicly or commit them to version control.
🙋♀️ Don't see the Client ID dialog?
If the dialog closed before you could copy the values, click on your newly created client (Claude Calendar Connector) in the Clients list. Your Client ID and Client Secret are visible on the client details page.
help me find my OAuth client credentials in Google Cloud Console
Your OAuth credentials are ready to go. Next up, you'll use them to connect Google Calendar directly to Claude as a Custom Connector.
Connect Google Calendar to Claude
Your OAuth credentials are ready. Now it's time to connect Google's Calendar MCP server to Claude so it can create events on your behalf.
Claude supports Custom Connectors that link remote MCP servers to your conversations. You'll register Google's hosted Calendar MCP endpoint, hand over your OAuth credentials, and authenticate. After this step, Claude can talk directly to your Google Calendar.
In this step, get ready to:
- Add Google Calendar as a Custom Connector in Claude.ai.
- Authenticate with your Google account to grant calendar access.
- Verify the connector is active and ready to use.
Add the Custom Connector
Claude's connector settings are where you register remote MCP servers. You'll point it at Google's hosted endpoint and provide the OAuth credentials you created in the previous step.
- Open https://claude.ai in your browser and sign in with your Claude Pro account.
- Click Customize in the left sidebar.
- Click Connectors.
- Click the + button, then select Add custom connector.
- Enter Google Calendar as the connector name.
- Enter the remote MCP server URL: https://calendarmcp.googleapis.com/mcp/v1
- Click Advanced settings to reveal the OAuth fields.
- Paste your Client ID into the OAuth Client ID field.
- Paste your Client Secret into the OAuth Client Secret field.
- Click Add.
What is a Custom Connector?
A Custom Connector tells Claude how to reach an external service through the Model Context Protocol. The URL you entered points to Google's managed MCP server, which runs entirely on Google's infrastructure. There's nothing for you to install or maintain.
The OAuth credentials let Claude request access to your calendar on your behalf. Claude never sees your Google password. It only receives a short-lived token that grants the specific permissions you configured in the consent screen.
🙋♀️ Don't see Advanced settings?
Make sure you're on the Claude Pro, Max, Team, or Enterprise plan. Custom Connectors with OAuth credentials require a paid plan.
If the option still doesn't appear, try refreshing the page and navigating back to Customize > Connectors.
Help me find the Advanced settings for a custom connector in Claude
Authenticate with Google
After adding the connector, Claude needs you to sign in with Google so it can receive an access token for your calendar.
- Claude will prompt you to authenticate. Click through to the Google sign-in page.
- Sign in with the same Google account you used to create the Cloud project.
- You may see a warning that says the app is unverified. Click Advanced, then click the link to proceed.
- Review the calendar permissions and click Continue to grant access.
- You'll be redirected back to Claude.ai automatically.
Why is the app marked as unverified?
Your Google Cloud project is in testing mode because you haven't published it for Google's review. This is normal for personal-use projects. The warning appears because Google wants to make sure you trust the app before granting it access.
Since you created this app yourself, it's safe to proceed. Testing-mode tokens expire after 7 days, so you may need to re-authenticate periodically.
🙋♀️ Seeing an Access blocked error?
This means the Google account you're signing in with isn't listed as a test user in your OAuth consent screen. Return to Google Cloud Console, navigate to Google Auth Platform > Audience > Test users, and make sure your email is listed there.
You must sign in with the exact same email address you added as a test user in Step 2.
Help me fix the Access blocked error during Google OAuth
Verify the connector is active
Now confirm that Claude can actually reach your Google Calendar through the connector.
- Navigate back to Customize > Connectors in Claude.ai.
- Confirm that Google Calendar shows as connected.
- Start a new conversation by clicking New chat.
- Click the + button on the lower left of the chat input area.
- Click Connectors.
- Toggle the Google Calendar connector ON for this conversation.
Why toggle it on per conversation?
Claude gives you control over which connectors are active in each conversation. This means Claude only accesses your calendar when you explicitly choose to include it. You can toggle connectors on and off at the start of any new chat.
🙋♀️ Connector not showing as connected?
Double-check that the MCP server URL is exactly https://calendarmcp.googleapis.com/mcp/v1 with no trailing slash or extra characters.
Also verify your Client ID ends in .apps.googleusercontent.com. If you accidentally pasted the Client Secret into the Client ID field (or vice versa), delete the connector and add it again with the correct values.
Help me troubleshoot my Google Calendar connector in Claude
Your Google Calendar connector is live. Next up, you'll connect Granola so Claude can read your meeting notes and turn them into calendar events.
Connect Granola to Claude
Your Google Calendar connector handles the output side of the workflow. Claude can now create events on your behalf. But where do the meeting notes come from?
That's where Granola comes in. Granola is a meeting notes app that records and summarizes your meetings. By connecting its MCP server to Claude, you give Claude direct access to your meeting history. No copy-pasting required.
In this step, get ready to:
- Connect Granola as a connector in Claude.ai.
- Authenticate with your Granola account.
- Verify that Claude can access your meeting notes.
Add the Granola connector
Unlike Google Calendar, Granola provides a pre-built connector in Claude's connector directory. You don't need to enter any URLs or OAuth credentials manually.
- Open https://claude.ai in your browser (if it's not already open).
- Click Customize in the left sidebar.
- Click Connectors.
- Click the + button to add a new connector.
- In the search field, type Granola.
- Click on Granola when it appears in the results.
- Click Connect.
A browser window opens asking you to sign in to your Granola account. This is Granola's OAuth flow, which grants Claude permission to read your meeting notes.
- Sign in with the Granola account you use for your meeting notes.
- Approve the permissions when prompted.
- You'll be redirected back to Claude.ai automatically once authentication is complete.
Why is Granola's setup so much simpler?
Granola publishes its MCP server to Claude's connector directory, which means all the endpoint URLs and OAuth configuration are pre-filled. Google Calendar required a Custom Connector because you needed to supply your own OAuth credentials from a Google Cloud project.
Both approaches use the same underlying technology (remote MCP servers with OAuth authentication), but directory-listed connectors hide the plumbing from you.
🙋♀️ Don't see Granola in the search results?
Make sure you're searching in the connector directory (the list that appears after clicking +), not in the Custom Connector form. The search field should show pre-built connectors from various services.
If Granola still doesn't appear, you can add it manually as a Custom Connector with the URL https://mcp.granola.ai/mcp and leave the OAuth fields empty (Granola handles authentication through its own browser-based flow).
help me connect Granola to Claude as an MCP connector
Verify Granola is active
Now confirm that Claude can actually read your meeting data through the Granola connector.
- Navigate back to Customize > Connectors in Claude.ai.
- Confirm that Granola shows as connected alongside your Google Calendar connector.
- Start a new conversation by clicking New chat.
- Click the + button on the lower left of the chat input area.
- Click Connectors.
- Toggle both Granola and Google Calendar ON for this conversation.
Type a quick test message like "What meetings did I have recently?" and press Enter. Claude will use the Granola MCP tools to retrieve your meeting history.
What should I see?
Claude will show a list of your recent meetings with titles, dates, and participants. If you see meeting data, your Granola connection is working correctly.
Claude may ask for permission to use the Granola tool the first time. Click Allow to grant access.
🙋♀️ Not seeing any meetings?
Make sure you have at least one meeting recorded in Granola. If you just created your Granola account, record a short test meeting first, then try again.
Also check that you signed in with the correct Granola account during the authentication step. If you have multiple accounts, the connector may be linked to the wrong one.
help me troubleshoot why Claude can't access my Granola meeting notes
Both connectors are live. Next up, you'll put them to work together by pulling meeting notes from Granola and turning action items into Google Calendar events.
Run the Meeting Notes to Calendar Workflow
Both MCP connectors are live. Claude can read your meeting notes from Granola and create events on your Google Calendar.
Now it's time to put both servers to work together. You'll ask Claude to pull action items from a specific meeting and schedule them directly on your calendar.
In this step, get ready to:
- Use Claude to extract action items from a meeting.
- Create calendar events from those action items.
- Verify the new events appear in Google Calendar.
Extract action items and create calendar events
You'll point Claude at a specific meeting to pull out action items, then ask it to turn those items into scheduled calendar events.
- Return to your Claude conversation from the previous step (both Granola and Google Calendar should already be toggled ON).
- Type a prompt asking Claude to find action items in a specific meeting. For example: "Look at my meeting from today and list the action items with any deadlines mentioned".
- Review the action items Claude identifies in its response.
Claude will parse your meeting notes and present a structured list of action items with any deadlines it finds. Once you're happy with the list, you'll ask Claude to schedule them.
- Ask Claude to create calendar events for the action items. For example: "Create calendar events for each of these action items. For items without a specific deadline, schedule them for next week. Set each event as a 30-minute block."
- Claude will use the create_event tool to add events to your Google Calendar.
- Approve each event creation when Claude asks for confirmation by clicking Allow.
What is Claude doing behind the scenes?
Claude is calling the Google Calendar MCP server's create_event tool for each action item. Each call sends a summary (event title), startTime, and endTime to Google's server, which creates the event on your calendar.
This is the power of MCP. Claude doesn't need a custom integration or plugin for Google Calendar. It just talks to the MCP server using a standard protocol.
🙋♀️ Claude can't create events?
If Claude says it doesn't have permission to create events, you may need to add write scopes to your OAuth consent screen. Go back to your Google Cloud project, navigate to Google Auth Platform > Data Access, and add the scope https://www.googleapis.com/auth/calendar.events. Then reconnect the Google Calendar connector in Claude.
help me fix Claude's permission error when trying to create Google Calendar events via MCP
Verify events in Google Calendar
The final check is confirming that the events actually landed on your calendar with the correct titles and dates.
- Open Google Calendar at https://calendar.google.com.
- Navigate to the dates where Claude scheduled the events.
- Confirm that the event titles match the action items from your meeting notes.
- Confirm that the times and durations are correct (30-minute blocks).
You should see the new events on your calendar, each with a title pulled directly from the action items Claude identified in your meeting notes.
Don't see the events?
Make sure you're viewing the same Google account you authenticated with in Claude. If you have multiple Google accounts, the events may have been created on a different calendar.
Also check that you approved each event creation in Claude. If you dismissed the confirmation prompt, the event was not created.
help me find the calendar events Claude created via MCP
Secret mission
Smart Scheduling with Attendees
You've already turned meeting notes into calendar blocks for yourself. But what about follow-up meetings with other people? In this mission, you'll use Claude to find available time slots and schedule collaborative meetings complete with attendees and Google Meet links.
Clean Up Your Resources
Clean Up Your Resources
This project runs entirely on free services, so there are no ongoing costs. Decide whether to keep your resources running, pause them to come back later, or delete them entirely.
Resources you used:
- Google Cloud project (Claude Calendar MCP) with Calendar APIs enabled.
- OAuth 2.0 client credentials (Claude Calendar Connector).
- Google Calendar MCP connector in Claude.ai.
- Calendar events created by Claude on your Google Calendar.
Keep everything running
No action needed. Choose this if you're still actively using Claude to manage your calendar from meeting notes.
- The Google Calendar connector stays active in Claude.ai. You can use it anytime with no ongoing cost.
- Your Google Cloud project remains free. The Calendar API and Calendar MCP API have no charges for this use case.
- Calendar events stay on your Google Calendar as normal events.
Pause - I'll come back to this later
Disconnect the connector to stop Claude from accessing your calendar, without deleting any configuration. You can reconnect anytime.
- In Claude.ai, click your profile icon and go to Settings.
- Click Connectors in the sidebar.
- Find Google Calendar and toggle it off or disconnect it.
- Your Google Cloud project and OAuth credentials remain intact for when you want to reconnect.
Delete - I don't want to use this again
Remove all project resources completely. This revokes the OAuth credentials and disconnects the Calendar MCP.
- Remove the connector from Claude.ai: go to Settings > Connectors, find Google Calendar, and remove it.
- Delete the Google Cloud project: go to the Google Cloud Console at https://console.cloud.google.com.
- Navigate to IAM & Admin > Settings.
- Click Shut down.
- Enter the project ID and click Shut down anyway to confirm.
- Delete any calendar events Claude created: open Google Calendar at https://calendar.google.com, find the events Claude added, click on each one, and select Delete.
What does deleting the project do?
Shutting down the Google Cloud project revokes all OAuth credentials and disables the APIs. This means Claude can no longer access your calendar through this connector. The project enters a 30-day recovery period before permanent deletion.
That's a Wrap!
That's a Wrap!
Nice work! You've just built a fully automated meeting-to-calendar workflow powered by Claude and MCP. No more copying action items by hand or switching between apps to schedule follow-ups.
You've learned how to:
- Created a Google Cloud project and configured OAuth 2.0 authentication with a consent screen and client credentials to securely connect Claude to your Google Calendar.
- Connected Google's official Calendar MCP server to Claude.ai as a Custom Connector, enabling Claude to read and write calendar events on your behalf.
- Used Granola MCP and Google Calendar MCP together to extract meeting action items and create calendar events automatically.
- Secret Mission: Used suggest_time to find available slots and scheduled collaborative meetings with attendees and Google Meet links.
Ready to quiz yourself?