mcp-gcalendar mcp
v1.1.0 · MCP Tool · productivity · registry.pascalai.org
Google Calendar API v3. Operations: calendars (list all), events (list with time range/search), get_event, create_event, update_event (full replace), patch_event (partial update), delete_event, quick_add (natural language), busy (free/busy query). Auth via access_token or GOOGLE_ACCESS_TOKEN env var; auto-refresh with refresh_token+client_id+client_secret.
gcalendargooglecalendareventsscheduleproductivityoauth2
Input Parameters
| Parameter | Type | Description |
| operationrequired |
string |
Operation to perform. Default: calendars. One of: calendars, events, get_event, create_event, update_event, patch_event, delete_event, quick_add, busy. |
| accessTokenoptional |
string |
OAuth2 access token. Can also be set via GOOGLE_ACCESS_TOKEN env var. |
| refreshTokenoptional |
string |
OAuth2 refresh token for auto-refresh. Can also be set via GOOGLE_REFRESH_TOKEN env var. |
| clientIdoptional |
string |
OAuth2 client ID. Can also be set via GOOGLE_CLIENT_ID env var. |
| clientSecretoptional |
string |
OAuth2 client secret. Can also be set via GOOGLE_CLIENT_SECRET env var. |
| calendarIdoptional |
string |
Calendar ID. Default: 'primary'. Use 'calendars' operation to list available IDs. Default: primary. |
| eventIdoptional |
string |
Event ID. Required for get_event, update_event, patch_event, delete_event. |
| summaryoptional |
string |
Event title. Required for create_event. |
| descriptionoptional |
string |
Event description/notes. |
| locationoptional |
string |
Event location. |
| startDateTimeoptional |
string |
Start datetime in RFC3339 format (e.g. '2024-03-15T10:00:00'). Use for timed events. Required if startDate not provided. |
| endDateTimeoptional |
string |
End datetime in RFC3339 format (e.g. '2024-03-15T11:00:00'). Use for timed events. |
| startDateoptional |
string |
Start date for all-day events (YYYY-MM-DD). Use instead of startDateTime for all-day events. |
| endDateoptional |
string |
End date for all-day events (YYYY-MM-DD, exclusive). E.g. for March 15 all-day: startDate='2024-03-15', endDate='2024-03-16'. |
| timeZoneoptional |
string |
IANA timezone (e.g. 'America/New_York', 'Europe/Madrid'). Default: UTC. Default: UTC. |
| attendeesoptional |
string |
Attendee emails, comma-separated (e.g. 'alice@example.com,bob@example.com'). |
| quickTextoptional |
string |
Natural language text for quick_add (e.g. 'Lunch with Bob tomorrow at noon'). Required for quick_add. |
| timeMinoptional |
string |
Filter events from this datetime (RFC3339). For events and busy operations. |
| timeMaxoptional |
string |
Filter events until this datetime (RFC3339). Required for busy operation. |
| maxResultsoptional |
integer |
Max events to return for events operation. Default: 25. Default: 25. |
| pageTokenoptional |
string |
Page token for pagination. |
| queryoptional |
string |
Free-text search in event fields (for events operation). |
| recurrenceoptional |
string |
Recurrence rule (RRULE). E.g. 'RRULE:FREQ=WEEKLY;COUNT=10' or 'RRULE:FREQ=DAILY;UNTIL=20241231T000000Z'. |
| colorIdoptional |
string |
Event color ID (1-11). 1=Lavender, 2=Sage, 3=Grape, 4=Flamingo, 5=Banana, 6=Tangerine, 7=Peacock, 8=Blueberry, 9=Basil, 10=Tomato, 11=Graphite. |
Output Fields
| Field | Type | Description |
| items |
array[object] |
|
| id |
string |
|
| summary |
string |
|
| start |
object |
|
| end |
object |
|
| ok |
boolean |
|
| event_id |
string |
|
| nextPageToken |
string |
|
Examples
List upcoming events
// Input
{
"operation": "events",
"accessToken": "ya29.xxx",
"timeMin": "2024-03-01T00:00:00Z",
"maxResults": 10
}
// Output
{
"items": [],
"nextPageToken": ""
}
Create a timed meeting
// Input
{
"operation": "create_event",
"accessToken": "ya29.xxx",
"summary": "Team Standup",
"startDateTime": "2024-03-15T09:00:00",
"endDateTime": "2024-03-15T09:30:00",
"timeZone": "America/New_York",
"attendees": "alice@example.com,bob@example.com",
"location": "Conference Room A"
}
// Output
{
"id": "abc123",
"summary": "Team Standup"
}
Create an all-day event
// Input
{
"operation": "create_event",
"accessToken": "ya29.xxx",
"summary": "Company Holiday",
"startDate": "2024-03-20",
"endDate": "2024-03-21"
}
// Output
{
"id": "xyz789"
}
Quick add event from natural language
// Input
{
"operation": "quick_add",
"accessToken": "ya29.xxx",
"calendarId": "primary",
"quickText": "Lunch with Bob tomorrow noon at Restaurant ABC"
}
// Output
{
"id": "qab456",
"summary": "Lunch with Bob"
}
Check free/busy
// Input
{
"operation": "busy",
"accessToken": "ya29.xxx",
"calendarId": "primary",
"timeMin": "2024-03-15T00:00:00Z",
"timeMax": "2024-03-15T23:59:59Z"
}
// Output
{
"calendars": {}
}
Install & Discovery
Install
ppm install mcp-gcalendar
Get JSON Schema
GET /v1/packages/mcp-gcalendar/1.1.0/schema
Discover by keyword
GET /v1/mcp/discover?q=gcalendar
Discovery hint: Install with ppm install mcp-gcalendar or invoke remotely via POST /v1/invoke/mcp-gcalendar on the MCP Service.