Google Calendar
8 tools • OpenAPI spec ↗
GETlist_calendars/calendarsList all calendars the authenticated user has access to, including subscribed calendars.
Request
No input parameters.
Response
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": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/google-calendar/calendars Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"items": null
}GETlist_events/eventsList 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
| Name | Type | Required | Description |
|---|---|---|---|
| calendarId | string | No | Calendar ID to list events from. Defaults to 'primary' (the user's primary calendar). |
| timeMin | string | No | Lower bound (inclusive) for an event's end time, in RFC 3339 format (e.g. 2024-01-01T00:00:00Z). |
| timeMax | string | No | Upper bound (exclusive) for an event's start time, in RFC 3339 format. |
| maxResults | number | No | Maximum number of events to return (default 250). |
| pageToken | string | No | Token for paginating through results. |
| orderBy | string | No | Sort order: 'startTime' (requires singleEvents=true) or 'updated'. |
| singleEvents | boolean | No | Whether to expand recurring events into instances. Defaults to true. |
Response
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": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/google-calendar/events Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"items": null,
"nextPageToken": null
}GETget_event/events/:eventIdGet a single event by its ID from a calendar.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| eventId | string | Yes | The ID of the event to retrieve. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| calendarId | string | No | Calendar ID containing the event. Defaults to 'primary' (the user's primary calendar). |
Response
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>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/google-calendar/events/:eventId Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"id": null,
"summary": null,
"description": null,
"location": null,
"start": null,
"end": null,
"attendees": null,
"organizer": null,
"creator": null,
"status": null,
"htmlLink": null,
"recurrence": null,
"reminders": null,
"colorId": null,
"visibility": null,
"transparency": null,
"conferenceData": null
}POSTsearch_events/events/searchSearch for events in a calendar using a text query. Matches against event summary, description, location, attendee names, and other fields.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | No | Free text search query to find matching events. |
| calendarId | string | No | Calendar ID to search. Defaults to 'primary' (the user's primary calendar). |
| timeMin | string | No | Lower bound (inclusive) for an event's end time, in RFC 3339 format. |
| timeMax | string | No | Upper bound (exclusive) for an event's start time, in RFC 3339 format. |
| maxResults | number | No | Maximum number of events to return (default 250). |
| pageToken | string | No | Token for paginating through results. |
| orderBy | string | No | Sort order: 'startTime' (requires singleEvents=true) or 'updated'. |
| singleEvents | boolean | No | Whether to expand recurring events into instances. Defaults to true. |
Response
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": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-calendar/events/search Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"items": null,
"nextPageToken": null
}POSTinsert_event/eventsCreate 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
| Name | Type | Required | Description |
|---|---|---|---|
| calendarId | string | No | Calendar ID to create the event on. Defaults to 'primary' (the user's primary calendar). |
| summary | string | No | Title of the event. |
| description | string | No | Description or notes for the event. |
| location | string | No | Location of the event. |
| startDateTime | string | No | Start date-time in RFC 3339 format (e.g. 2024-01-15T09:00:00-05:00). |
| endDateTime | string | No | End date-time in RFC 3339 format (e.g. 2024-01-15T10:00:00-05:00). |
| attendees | string | No | Comma-separated list of attendee email addresses (e.g. '[email protected],[email protected]'). |
| sendUpdates | string | No | Whether to send notifications: 'all', 'externalOnly', or 'none' (default 'none'). |
| recurrence | array | No | Array of RFC 5545 recurrence lines (RRULE, RDATE, EXDATE). Example: ['RRULE:FREQ=MONTHLY;BYDAY=3FR']. |
| reminders | object | No | Reminder settings. Set useDefault=true to use the calendar's defaults, or supply overrides. |
| colorId | string | No | Event color ID (1–11). See Google Calendar 'colors' endpoint. |
| visibility | string | No | Event visibility. |
| transparency | string | No | Whether the event blocks time ('opaque') or not ('transparent'). |
| addGoogleMeet | boolean | No | When true, attach a Google Meet conference to the event. Sends conferenceDataVersion=1. |
Response
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": {}
}
}
}Request
POST https://app.ferrule.io/api/v1/google-calendar/events Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"id": null,
"summary": null,
"description": null,
"location": null,
"start": null,
"end": null,
"attendees": null,
"organizer": null,
"creator": null,
"status": null,
"htmlLink": null,
"recurrence": null,
"reminders": null,
"colorId": null,
"visibility": null,
"transparency": null,
"conferenceData": null
}PATCHupdate_event/events/:eventIdPartially 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
| Name | Type | Required | Description |
|---|---|---|---|
| eventId | string | Yes | The ID of the event to update. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| calendarId | string | No | Calendar ID containing the event. Defaults to 'primary'. |
| summary | string | No | Title of the event. |
| description | string | No | Description or notes. |
| location | string | No | Location of the event. |
| startDateTime | string | No | Start date-time in RFC 3339 format. |
| endDateTime | string | No | End date-time in RFC 3339 format. |
| attendees | string | No | Comma-separated list of attendee emails. |
| sendUpdates | string | No | Whether to send notifications (default 'none'). |
| recurrence | array | No | Array of RFC 5545 recurrence lines. Pass [] to clear; omit to leave unchanged. |
| reminders | object | No | Reminder settings. |
| colorId | string | No | Event color ID (1–11). |
| visibility | string | No | Event visibility. |
| transparency | string | No | Busy/free setting. |
| addGoogleMeet | boolean | No | When true, attach a new Google Meet conference. Omit to leave the existing conferenceData unchanged. |
Response
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>"
}
}
}
}Request
PATCH https://app.ferrule.io/api/v1/google-calendar/events/:eventId Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"id": null,
"summary": null,
"description": null,
"location": null,
"start": null,
"end": null,
"attendees": null,
"organizer": null,
"creator": null,
"status": null,
"htmlLink": null,
"recurrence": null,
"reminders": null,
"colorId": null,
"visibility": null,
"transparency": null,
"conferenceData": null
}PUTreplace_event/events/:eventIdFully 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
| Name | Type | Required | Description |
|---|---|---|---|
| eventId | string | Yes | The ID of the event to replace. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| calendarId | string | No | Calendar ID containing the event. Defaults to 'primary'. |
| summary | string | No | Title of the event. |
| description | string | No | Description or notes. |
| location | string | No | Location of the event. |
| startDateTime | string | No | Start date-time in RFC 3339 format. |
| endDateTime | string | No | End date-time in RFC 3339 format. |
| attendees | string | No | Comma-separated list of attendee emails. |
| sendUpdates | string | No | Whether to send notifications (default 'none'). |
| recurrence | array | No | Array of RFC 5545 recurrence lines. |
| reminders | object | No | Reminder settings. |
| colorId | string | No | Event color ID (1–11). |
| visibility | string | No | Event visibility. |
| transparency | string | No | Busy/free setting. |
| addGoogleMeet | boolean | No | When true, attach a new Google Meet conference. |
Response
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>"
}
}
}
}Request
PUT https://app.ferrule.io/api/v1/google-calendar/events/:eventId Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"id": null,
"summary": null,
"description": null,
"location": null,
"start": null,
"end": null,
"attendees": null,
"organizer": null,
"creator": null,
"status": null,
"htmlLink": null,
"recurrence": null,
"reminders": null,
"colorId": null,
"visibility": null,
"transparency": null,
"conferenceData": null
}DELETEdelete_event/events/:eventIdDelete an event by its ID.
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| eventId | string | Yes | The ID of the event to delete. |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| calendarId | string | No | Calendar ID containing the event. Defaults to 'primary'. |
| sendUpdates | string | No | Whether to send notifications (default 'none'). |
Response
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>"
}
}
}
}Request
DELETE https://app.ferrule.io/api/v1/google-calendar/events/:eventId Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"success": false,
"message": "..."
}