Ferrule

Google Calendar

8 tools OpenAPI spec ↗

MCPREST
GETlist_calendars/calendars

List all calendars the authenticated user has access to, including subscribed calendars.

Request

No input parameters.

Response

itemsobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-calendar",
      "method": "list_calendars"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-calendar",
    "arguments": {
      "method": "list_calendars",
      "params": {}
    }
  }
}
GETlist_events/events

List events from a calendar. Returns events within the specified time range, ordered by start time. Defaults to the primary calendar with singleEvents=true and maxResults=250.

Request

Query Parameters

NameTypeRequiredDescription
calendarIdstringNoCalendar ID to list events from. Defaults to 'primary' (the user's primary calendar).
timeMinstringNoLower bound (inclusive) for an event's end time, in RFC 3339 format (e.g. 2024-01-01T00:00:00Z).
timeMaxstringNoUpper bound (exclusive) for an event's start time, in RFC 3339 format.
maxResultsnumberNoMaximum number of events to return (default 250).
pageTokenstringNoToken for paginating through results.
orderBystringNoSort order: 'startTime' (requires singleEvents=true) or 'updated'.
singleEventsbooleanNoWhether to expand recurring events into instances. Defaults to true.

Response

itemsobject
nextPageTokenobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-calendar",
      "method": "list_events"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-calendar",
    "arguments": {
      "method": "list_events",
      "params": {}
    }
  }
}
GETget_event/events/:eventId

Get a single event by its ID from a calendar.

Request

Path Parameters

NameTypeRequiredDescription
eventIdstringYesThe ID of the event to retrieve.

Query Parameters

NameTypeRequiredDescription
calendarIdstringNoCalendar ID containing the event. Defaults to 'primary' (the user's primary calendar).

Response

idobject
summaryobject
descriptionobject
locationobject
startobject
endobject
attendeesobject
organizerobject
creatorobject
statusobject
htmlLinkobject
recurrenceobject
remindersobject
colorIdobject
visibilityobject
transparencyobject
conferenceDataobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-calendar",
      "method": "get_event"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-calendar",
    "arguments": {
      "method": "get_event",
      "params": {
        "eventId": "<eventId>"
      }
    }
  }
}
POSTsearch_events/events/search

Search for events in a calendar using a text query. Matches against event summary, description, location, attendee names, and other fields.

Request

Query Parameters

NameTypeRequiredDescription
qstringNoFree text search query to find matching events.
calendarIdstringNoCalendar ID to search. Defaults to 'primary' (the user's primary calendar).
timeMinstringNoLower bound (inclusive) for an event's end time, in RFC 3339 format.
timeMaxstringNoUpper bound (exclusive) for an event's start time, in RFC 3339 format.
maxResultsnumberNoMaximum number of events to return (default 250).
pageTokenstringNoToken for paginating through results.
orderBystringNoSort order: 'startTime' (requires singleEvents=true) or 'updated'.
singleEventsbooleanNoWhether to expand recurring events into instances. Defaults to true.

Response

itemsobject
nextPageTokenobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-calendar",
      "method": "search_events"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-calendar",
    "arguments": {
      "method": "search_events",
      "params": {}
    }
  }
}
POSTinsert_event/events

Create a new event on a calendar. Provide summary, start/end times, and optionally description, location, attendees, recurrence rules, reminders, color, visibility, transparency, or a Google Meet link.

Request

Query Parameters

NameTypeRequiredDescription
calendarIdstringNoCalendar ID to create the event on. Defaults to 'primary' (the user's primary calendar).
summarystringNoTitle of the event.
descriptionstringNoDescription or notes for the event.
locationstringNoLocation of the event.
startDateTimestringNoStart date-time in RFC 3339 format (e.g. 2024-01-15T09:00:00-05:00).
endDateTimestringNoEnd date-time in RFC 3339 format (e.g. 2024-01-15T10:00:00-05:00).
attendeesstringNoComma-separated list of attendee email addresses (e.g. '[email protected],[email protected]').
sendUpdatesstringNoWhether to send notifications: 'all', 'externalOnly', or 'none' (default 'none').
recurrencearrayNoArray of RFC 5545 recurrence lines (RRULE, RDATE, EXDATE). Example: ['RRULE:FREQ=MONTHLY;BYDAY=3FR'].
remindersobjectNoReminder settings. Set useDefault=true to use the calendar's defaults, or supply overrides.
colorIdstringNoEvent color ID (1–11). See Google Calendar 'colors' endpoint.
visibilitystringNoEvent visibility.
transparencystringNoWhether the event blocks time ('opaque') or not ('transparent').
addGoogleMeetbooleanNoWhen true, attach a Google Meet conference to the event. Sends conferenceDataVersion=1.

Response

idobject
summaryobject
descriptionobject
locationobject
startobject
endobject
attendeesobject
organizerobject
creatorobject
statusobject
htmlLinkobject
recurrenceobject
remindersobject
colorIdobject
visibilityobject
transparencyobject
conferenceDataobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-calendar",
      "method": "insert_event"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-calendar",
    "arguments": {
      "method": "insert_event",
      "params": {}
    }
  }
}
PATCHupdate_event/events/:eventId

Partially update an existing event. Only the fields you provide are changed — omitted fields are left unchanged. To clear a recurrence, pass an empty array.

Request

Path Parameters

NameTypeRequiredDescription
eventIdstringYesThe ID of the event to update.

Query Parameters

NameTypeRequiredDescription
calendarIdstringNoCalendar ID containing the event. Defaults to 'primary'.
summarystringNoTitle of the event.
descriptionstringNoDescription or notes.
locationstringNoLocation of the event.
startDateTimestringNoStart date-time in RFC 3339 format.
endDateTimestringNoEnd date-time in RFC 3339 format.
attendeesstringNoComma-separated list of attendee emails.
sendUpdatesstringNoWhether to send notifications (default 'none').
recurrencearrayNoArray of RFC 5545 recurrence lines. Pass [] to clear; omit to leave unchanged.
remindersobjectNoReminder settings.
colorIdstringNoEvent color ID (1–11).
visibilitystringNoEvent visibility.
transparencystringNoBusy/free setting.
addGoogleMeetbooleanNoWhen true, attach a new Google Meet conference. Omit to leave the existing conferenceData unchanged.

Response

idobject
summaryobject
descriptionobject
locationobject
startobject
endobject
attendeesobject
organizerobject
creatorobject
statusobject
htmlLinkobject
recurrenceobject
remindersobject
colorIdobject
visibilityobject
transparencyobject
conferenceDataobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-calendar",
      "method": "update_event"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-calendar",
    "arguments": {
      "method": "update_event",
      "params": {
        "eventId": "<eventId>"
      }
    }
  }
}
PUTreplace_event/events/:eventId

Fully replace an existing event. All fields you supply overwrite the stored event; fields you omit will be cleared unless the Google API treats them as implicit. Requires summary, startDateTime, and endDateTime.

Request

Path Parameters

NameTypeRequiredDescription
eventIdstringYesThe ID of the event to replace.

Query Parameters

NameTypeRequiredDescription
calendarIdstringNoCalendar ID containing the event. Defaults to 'primary'.
summarystringNoTitle of the event.
descriptionstringNoDescription or notes.
locationstringNoLocation of the event.
startDateTimestringNoStart date-time in RFC 3339 format.
endDateTimestringNoEnd date-time in RFC 3339 format.
attendeesstringNoComma-separated list of attendee emails.
sendUpdatesstringNoWhether to send notifications (default 'none').
recurrencearrayNoArray of RFC 5545 recurrence lines.
remindersobjectNoReminder settings.
colorIdstringNoEvent color ID (1–11).
visibilitystringNoEvent visibility.
transparencystringNoBusy/free setting.
addGoogleMeetbooleanNoWhen true, attach a new Google Meet conference.

Response

idobject
summaryobject
descriptionobject
locationobject
startobject
endobject
attendeesobject
organizerobject
creatorobject
statusobject
htmlLinkobject
recurrenceobject
remindersobject
colorIdobject
visibilityobject
transparencyobject
conferenceDataobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-calendar",
      "method": "replace_event"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-calendar",
    "arguments": {
      "method": "replace_event",
      "params": {
        "eventId": "<eventId>"
      }
    }
  }
}
DELETEdelete_event/events/:eventId

Delete an event by its ID.

Request

Path Parameters

NameTypeRequiredDescription
eventIdstringYesThe ID of the event to delete.

Query Parameters

NameTypeRequiredDescription
calendarIdstringNoCalendar ID containing the event. Defaults to 'primary'.
sendUpdatesstringNoWhether to send notifications (default 'none').

Response

successboolean
messagestring

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-calendar",
      "method": "delete_event"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-calendar",
    "arguments": {
      "method": "delete_event",
      "params": {
        "eventId": "<eventId>"
      }
    }
  }
}