Integration · Scheduling
Connect Claude & ChatGPT to Google Calendar
Ask your AI what your week looks like, when you are free, or to book a meeting and invite the other person. It reads events with times, attendees, location and meeting link, checks free and busy time, and creates, changes, moves or deletes events. Planning happens in the chat, and the result lands in your calendar.
Free plan, no credit card. Takes about a minute.
Try asking
“What do I have on Thursday?”
The AI lists the events in your main calendar for that day in time order, with recurring events expanded.
“When am I free for an hour on Tuesday or Wednesday?”
It checks free and busy time in your calendar for those days and suggests open slots.
“Book a 30-minute call with [email protected] on Tuesday at 10 and invite her.”
It creates the event with Anna as attendee and asks Google to email her the invitation.
What your AI can do
Events
List and search events by time range and text, and read any event with time, attendees, location and meeting link.
Scheduling
Create events, add them from a plain sentence, change or move them, and check free and busy time before you book.
Calendars
List your calendars, read their time zone, create a new calendar and list each occurrence of a recurring event.
“Lunch with Peter tomorrow 12:30 to 13:30.”
It creates the event from the sentence with quick add, the same way Google Calendar reads typed text.
“Move Friday's team meeting to 14:00 and tell the attendees.”
It changes the start and end time and asks Google to send the update to everyone invited.
“Cancel the dentist appointment next Monday.”
It finds the event and deletes it. This cannot be undone.
34 tools for Google Calendar
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
check_free_busyChanges dataCheck when calendars are busy between `time_min` and `time_max` (RFC 3339); `items` is a list of {id} calendars, e.g. [{"id": "primary"}]. Use to find free time before booking.create_calendarChanges dataCreate a new secondary calendar with a `summary` (name) and optional `time_zone` and `description`.create_calendar_aclChanges dataCreate a new acl for a calendar. API summary: Creates an access control rule.create_calendar_clearChanges dataCreate a new clear for a calendar. API summary: Clears a primary calendar.create_calendar_listChanges dataCreate a new calendar list. API summary: Inserts an existing calendar into the user's calendar list.create_eventChanges dataCreate an event in `calendar_id`; put the event in `body` with summary, start and end ({dateTime, timeZone} or {date}), and optional description, location and attendees. Set `send_updates` to all to email invitations to attendees.create_stopChanges dataCreate a new stop. API summary: Stop watching resources through this channel.create_watchChanges dataCreate a new watch. API summary: Watch for changes to CalendarList resources.create_watch_calendar_acl_watchChanges dataCreate a new watch. API summary: Watch for changes to ACL resources.create_watch_calendar_events_watchChanges dataCreate a new watch. API summary: Watch for changes to Events resources.create_watch_calendar_settings_watchChanges dataCreate a new watch. API summary: Watch for changes to Settings resources.delete_calendarDeletesPermanently delete a calendar by calendar id. Destructive action; may require approval. API summary: Deletes a secondary calendar.delete_calendar_aclDeletesPermanently delete a acl by rule id. Destructive action; may require approval. API summary: Deletes an access control rule.delete_calendar_listDeletesPermanently delete a calendar list by calendar id. Destructive action; may require approval. API summary: Removes a calendar from the user's calendar list.delete_eventDeletesDelete an event by `calendar_id` and `event_id`. Set `send_updates` to all to send cancellations to attendees. This cannot be undone.get_calendarGet one calendar's name, description and time zone by `calendar_id` (use `primary` for the main calendar).get_calendar_aclGet one acl for a calendar by rule id. API summary: Returns an access control rule.get_calendar_listGet one calendar list by calendar id. API summary: Returns a calendar from the user's calendar list.get_eventGet one event by `calendar_id` and `event_id`, with time, attendees, location and meeting link.get_settingGet one setting by setting. API summary: Returns a single user setting.list_calendar_aclsList acls for a calendar. Optional filters: show deleted or sync token. Results are paginated. API summary: Returns the rules in the access control list for the calendar.list_calendarsList the calendars in the user's calendar list with their IDs, names and access roles. The main calendar's ID is `primary`.list_colorsList colors. API summary: Returns the color definitions for calendars and events.list_eventsList or search events in a calendar by `calendar_id` (`primary` for the main one), filtered by `time_min` / `time_max` (RFC 3339) and free text `q`. Set `single_events` true and `order_by` startTime to get recurring events expanded in time order.list_recurring_event_instancesList the individual occurrences of a recurring event by `calendar_id` and `event_id`, optionally between `time_min` and `time_max`.list_settingsList settings. Optional filters: sync token. Results are paginated. API summary: Returns all user settings for the authenticated user.move_eventChanges dataMove an event from `calendar_id` to another calendar given as `destination`, by `event_id`.pay_calendar_ownershipMoves moneyTransfer a calendar (calendar id). Financial or irreversible action; may require approval. API summary: Transfers a secondary calendar between users within a Google Workspace organization.quick_add_eventChanges dataCreate an event from a plain sentence in `text`, e.g. "Lunch with Anna tomorrow 12:30-13:30", in `calendar_id`.update_calendarChanges dataUpdate an existing calendar identified by calendar id. Only the fields you pass are changed. API summary: Updates metadata for a calendar.update_calendar_aclChanges dataUpdate an existing acl identified by rule id. Only the fields you pass are changed. API summary: Updates an access control rule.update_calendar_listChanges dataUpdate an existing calendar list identified by calendar id. Only the fields you pass are changed. API summary: Updates an existing calendar on the user's calendar list.update_eventChanges dataChange an event by `calendar_id` and `event_id`; put only the fields to change in `body` (e.g. start, end, summary, attendees). Set `send_updates` to all to notify attendees.upload_eventChanges dataImport a event (calendar id). API summary: Imports an event.
Set up in three steps
- 1
Pick the app
Create a free HeyMyApps account and choose Google Calendar from the app list.
- 2
Paste your key
Paste the OAuth client ID and client secret from your own Google Cloud project, then sign in with Google once. In the Google Cloud console create a project and enable the Google Calendar API (APIs & Services > Library). Set up the OAuth consent screen as Internal for Google Workspace, or as External and then click Publish app, because apps left in Testing get refresh tokens that expire after 7 days. Then go to Credentials > Create credentials > OAuth client ID > Web application, add the redirect URI https://heymyapps.com/oauth/callback and copy the client ID and secret. HeyMyApps renews access automatically after that.
- 3
Add the link to your AI
You get a personal MCP link. Add it to Claude, ChatGPT or Cursor:
- Click your name, then Settings › Connectors › Add custom connector.
- Paste your link as the Remote MCP server URL.
- Switch it on from the + menu in a chat.
Questions
What can the AI do in Google Calendar?
It can list your calendars, read and search events, list the occurrences of a recurring event and check free and busy time. It can create events, including from a plain sentence, update, move and delete events, and create a new calendar.
Does the AI see my Google Calendar credentials?
No. Your OAuth client secret and the access from your Google sign-in are encrypted at rest and never shown to the AI. After you save them, they are not shown again, not even to you. The AI only sees the results of the tools it calls.
Can I control what the AI is allowed to do?
Yes. You choose which tools are switched on, so you can start read-only. Deleting an event cannot be undone, and creating or changing events can email your attendees, so these tools can require your approval before they run. Every tool call is logged.
Does it work with ChatGPT?
Yes. In ChatGPT go to Settings › Apps & Connectors › Advanced and turn on Developer mode, then add your HeyMyApps link. Developer mode needs a paid ChatGPT plan: Plus, Pro, Business or Enterprise. The same link also works in Claude (Settings › Connectors › Add custom connector), Cursor and other MCP clients.
What does it cost?
Google Calendar connects with OAuth, and OAuth connections need the HeyMyApps Pro plan or above. HeyMyApps also has a free plan with no credit card, but it does not include this connection. Paid plans bill per completed task. You also need your own Google account.
Do attendees get an email when the AI books a meeting?
Only when the tool is called with send_updates set to all. Then Google emails invitations, updates or cancellations to the attendees. If you want to check before anyone is contacted, require approval for creating, updating and deleting events.
Related integrations
Let your AI work in Google Calendar today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect Google Calendar freeHeyMyApps is not affiliated with Google Calendar. Product names are trademarks of their owners.






