Organize Your Life with GPT
Organize Your Life with GPT · GPT Actions
Google Calendar API
GET /users/me/calendarListList available calendarsGET /calendars/{calendarId}/eventsList events from a calendarPOST /calendars/{calendarId}/eventsCreate an event on a calendarDELETE /calendars/{calendarId}/events/{eventId}Delete an event on the calendarGET /calendars/{calendarId}/events/{eventId}Get an event on the calendarPATCH /calendars/{calendarId}/events/{eventId}Patch an event on the calendarPUT /calendars/{calendarId}/events/{eventId}Update an event on the calendarPOST /calendarsCreate a calendarDELETE /calendars/{calendarId}Delete a calendar
原始 API 定义
{
"openapi": "3.0.0",
"info": {
"title": "Google Calendar API",
"version": "v3"
},
"servers": [
{
"url": "https://www.googleapis.com/calendar/v3"
}
],
"paths": {
"/users/me/calendarList": {
"get": {
"summary": "List available calendars",
"operationId": "listCalendars"
}
},
"/calendars/{calendarId}/events": {
"get": {
"summary": "List events from a calendar",
"operationId": "listEvents",
"parameters": [
{
"name": "calendarId",
"in": "path",
"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the 'primary' keyword.",
"schema": {
"type": "string"
},
"required": true
},
{
"name": "maxResults",
"in": "query",
"description": "The maximum number of events returned by the API. This is useful when you need to control the response size.",
"schema": {
"type": "integer",
"default": 100
},
"required": true
},
{
"name": "pageToken",
"in": "query",
"description": "Useful when the results are paginated. The value should be the nextPageToken if one was returned in the previous response.",
"schema": {
"type": "string"
}
}
]
},
"post": {
"summary": "Create an event on a calendar",
"operationId": "createEvent",
"parameters": [
{
"name": "calendarId",
"in": "path",
"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the 'primary' keyword.",
"schema": {
"type": "string"
},
"required": true
}
],
"requestBody": {
"description": "Data to be sent with the create event request",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"end": {
"description": "The end time of the event or first event if recurring",
"type": "object",
"properties": {
"dateTime": {
"description": "The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.",
"type": "datetime"
},
"timeZone": {
"description": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.",
"type": "string"
}
},
"required": [
"dateTime",
"timeZone"
]
},
"start": {
"description": "The start time of the event or frist event if recurring",
"type": "object",
"properties": {
"dateTime": {
"description": "The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.",
"type": "datetime"
},
"timeZone": {
"description": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.",
"type": "string"
}
},
"required": [
"dateTime",
"timeZone"
]
},
"description": {
"description": "A description of the event",
"type": "string"
},
"location": {
"description": "Location of the event",
"type": "string"
},
"summary": {
"description": "Title of the event",
"type": "string"
},
"reminders": {
"description": "Calendar event reminders configuration",
"type": "object",
"properties": {
"useDefault": {
"description": "Whether the default reminders of the calendar apply to the event.",
"type": "boolean"
}
}
}
},
"required": [
"end",
"start"
]
}
}
}
}
}
},
"/calendars/{calendarId}/events/{eventId}": {
"delete": {
"summary": "Delete an event on the calendar",
"operationId": "deleteEvent",
"parameters": [
{
"name": "calendarId",
"in": "path",
"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the 'primary' keyword.",
"schema": {
"type": "string"
},
"required": true
},
{
"name": "eventId",
"in": "path",
"description": "Event identifier. To retrieve event IDs call the events.list method.",
"schema": {
"type": "string"
},
"required": true
}
]
},
"get": {
"summary": "Get an event on the calendar",
"operationId": "getEvent",
"parameters": [
{
"name": "calendarId",
"in": "path",
"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the 'primary' keyword.",
"schema": {
"type": "string"
},
"required": true
},
{
"name": "eventId",
"in": "path",
"description": "Event identifier. To retrieve event IDs call the events.list method.",
"schema": {
"type": "string"
},
"required": true
}
]
},
"patch": {
"summary": "Patch an event on the calendar",
"operationId": "patchEvent",
"parameters": [
{
"name": "calendarId",
"in": "path",
"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the 'primary' keyword.",
"schema": {
"type": "string"
},
"required": true
},
{
"name": "eventId",
"in": "path",
"description": "Event identifier. To retrieve event IDs call the events.list method.",
"schema": {
"type": "string"
},
"required": true
}
]
},
"put": {
"summary": "Update an event on the calendar",
"operationId": "putEvent",
"parameters": [
{
"name": "calendarId",
"in": "path",
"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the 'primary' keyword.",
"schema": {
"type": "string"
},
"required": true
},
{
"name": "eventId",
"in": "path",
"description": "Event identifier. To retrieve event IDs call the events.list method.",
"schema": {
"type": "string"
},
"required": true
}
],
"requestBody": {
"description": "Data to be sent with the create event request",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"end": {
"description": "The end time of the event or first event if recurring",
"type": "object",
"properties": {
"dateTime": {
"description": "The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.",
"type": "datetime"
},
"timeZone": {
"description": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.",
"type": "string"
}
},
"required": [
"dateTime",
"timeZone"
]
},
"start": {
"description": "The start time of the event or frist event if recurring",
"type": "object",
"properties": {
"dateTime": {
"description": "The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.",
"type": "datetime"
},
"timeZone": {
"description": "The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. \"Europe/Zurich\".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.",
"type": "string"
}
},
"required": [
"dateTime",
"timeZone"
]
},
"description": {
"description": "A description of the event",
"type": "string"
},
"location": {
"description": "Location of the event",
"type": "string"
},
"summary": {
"description": "Title of the event",
"type": "string"
},
"reminders": {
"description": "Calendar event reminders configuration",
"type": "object",
"properties": {
"useDefault": {
"description": "Whether the default reminders of the calendar apply to the event.",
"type": "boolean"
}
}
}
}
}
}
}
}
}
},
"/calendars": {
"post": {
"summary": "Create a calendar",
"operationId": "createCalendar",
"requestBody": {
"description": "Data to be sent with the create calendar request",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"summary": {
"description": "The title of the calendar",
"type": "string"
},
"timeZone": {
"description": "The timezone of the calendar",
"type": "string"
}
},
"required": [
"summary"
]
}
}
}
}
}
},
"/calendars/{calendarId}": {
"delete": {
"summary": "Delete a calendar",
"operationId": "deleteCalendar",
"parameters": [
{
"name": "calendarId",
"in": "path",
"description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the 'primary' keyword.",
"schema": {
"type": "string"
},
"required": true
}
]
}
}
}
}