Google Calendar · Capability

Google Calendar API

The Google Calendar API provides RESTful access to Google Calendar data. It enables managing calendars, events, access control lists, settings, and free/busy information.

Run with Naftiko GoogleCalendarAPI

What You Can Do

POST
Createcalendar — Google Calendar Create calendar
/calendars
GET
Getcalendar — Google Calendar Get calendar
/calendars/{calendarId}
PUT
Updatecalendar — Google Calendar Update calendar
/calendars/{calendarId}
DELETE
Deletecalendar — Google Calendar Delete calendar
/calendars/{calendarId}
GET
Listevents — Google Calendar List events
/calendars/{calendarId}/events
POST
Createevent — Google Calendar Create event
/calendars/{calendarId}/events
GET
Getevent — Google Calendar Get event
/calendars/{calendarId}/events/{eventId}
PUT
Updateevent — Google Calendar Update event
/calendars/{calendarId}/events/{eventId}
PATCH
Patchevent — Google Calendar Patch event
/calendars/{calendarId}/events/{eventId}
DELETE
Deleteevent — Google Calendar Delete event
/calendars/{calendarId}/events/{eventId}
POST
Quickaddevent — Google Calendar Quick add event
/calendars/{calendarId}/events/quickAdd
GET
Listacl — Google Calendar List ACL rules
/calendars/{calendarId}/acl
POST
Insertacl — Google Calendar Insert ACL rule
/calendars/{calendarId}/acl
GET
Listcalendarlist — Google Calendar List calendar list
/users/me/calendarList
POST
Insertcalendarlist — Google Calendar Insert calendar to list
/users/me/calendarList
GET
Listsettings — Google Calendar List settings
/users/me/settings
POST
Queryfreebusy — Google Calendar Query free/busy
/freeBusy
GET
Getcolors — Google Calendar Get colors
/colors

MCP Tools

createcalendar

Google Calendar Create calendar

getcalendar

Google Calendar Get calendar

read-only idempotent
updatecalendar

Google Calendar Update calendar

idempotent
deletecalendar

Google Calendar Delete calendar

idempotent
listevents

Google Calendar List events

read-only idempotent
createevent

Google Calendar Create event

getevent

Google Calendar Get event

read-only idempotent
updateevent

Google Calendar Update event

idempotent
patchevent

Google Calendar Patch event

deleteevent

Google Calendar Delete event

idempotent
quickaddevent

Google Calendar Quick add event

listacl

Google Calendar List ACL rules

read-only idempotent
insertacl

Google Calendar Insert ACL rule

listcalendarlist

Google Calendar List calendar list

read-only idempotent
insertcalendarlist

Google Calendar Insert calendar to list

listsettings

Google Calendar List settings

read-only idempotent
queryfreebusy

Google Calendar Query free/busy

getcolors

Google Calendar Get colors

read-only idempotent

Capability Spec

google-calendar-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Calendar API
  description: The Google Calendar API provides RESTful access to Google Calendar data. It enables managing calendars, events,
    access control lists, settings, and free/busy information.
  tags:
  - Google
  - Calendar
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: google-calendar
    baseUri: https://www.googleapis.com/calendar/v3
    description: Google Calendar API HTTP API.
    resources:
    - name: calendars
      path: /calendars
      operations:
      - name: createcalendar
        method: POST
        description: Google Calendar Create calendar
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: calendars-calendarid
      path: /calendars/{calendarId}
      operations:
      - name: getcalendar
        method: GET
        description: Google Calendar Get calendar
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatecalendar
        method: PUT
        description: Google Calendar Update calendar
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletecalendar
        method: DELETE
        description: Google Calendar Delete calendar
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: calendars-calendarid-events
      path: /calendars/{calendarId}/events
      operations:
      - name: listevents
        method: GET
        description: Google Calendar List events
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        - name: maxResults
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        - name: timeMin
          in: query
          type: string
        - name: timeMax
          in: query
          type: string
        - name: q
          in: query
          type: string
        - name: singleEvents
          in: query
          type: boolean
        - name: orderBy
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createevent
        method: POST
        description: Google Calendar Create event
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: calendars-calendarid-events-eventid
      path: /calendars/{calendarId}/events/{eventId}
      operations:
      - name: getevent
        method: GET
        description: Google Calendar Get event
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        - name: eventId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateevent
        method: PUT
        description: Google Calendar Update event
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        - name: eventId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: patchevent
        method: PATCH
        description: Google Calendar Patch event
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        - name: eventId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteevent
        method: DELETE
        description: Google Calendar Delete event
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        - name: eventId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: calendars-calendarid-events-quickadd
      path: /calendars/{calendarId}/events/quickAdd
      operations:
      - name: quickaddevent
        method: POST
        description: Google Calendar Quick add event
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        - name: text
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: calendars-calendarid-acl
      path: /calendars/{calendarId}/acl
      operations:
      - name: listacl
        method: GET
        description: Google Calendar List ACL rules
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: insertacl
        method: POST
        description: Google Calendar Insert ACL rule
        inputParameters:
        - name: calendarId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-me-calendarlist
      path: /users/me/calendarList
      operations:
      - name: listcalendarlist
        method: GET
        description: Google Calendar List calendar list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: insertcalendarlist
        method: POST
        description: Google Calendar Insert calendar to list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-me-settings
      path: /users/me/settings
      operations:
      - name: listsettings
        method: GET
        description: Google Calendar List settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: freebusy
      path: /freeBusy
      operations:
      - name: queryfreebusy
        method: POST
        description: Google Calendar Query free/busy
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: colors
      path: /colors
      operations:
      - name: getcolors
        method: GET
        description: Google Calendar Get colors
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: google-calendar-rest
    description: REST adapter for Google Calendar API.
    resources:
    - path: /calendars
      name: createcalendar
      operations:
      - method: POST
        name: createcalendar
        description: Google Calendar Create calendar
        call: google-calendar.createcalendar
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}
      name: getcalendar
      operations:
      - method: GET
        name: getcalendar
        description: Google Calendar Get calendar
        call: google-calendar.getcalendar
        with:
          calendarId: rest.calendarId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}
      name: updatecalendar
      operations:
      - method: PUT
        name: updatecalendar
        description: Google Calendar Update calendar
        call: google-calendar.updatecalendar
        with:
          calendarId: rest.calendarId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}
      name: deletecalendar
      operations:
      - method: DELETE
        name: deletecalendar
        description: Google Calendar Delete calendar
        call: google-calendar.deletecalendar
        with:
          calendarId: rest.calendarId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}/events
      name: listevents
      operations:
      - method: GET
        name: listevents
        description: Google Calendar List events
        call: google-calendar.listevents
        with:
          calendarId: rest.calendarId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}/events
      name: createevent
      operations:
      - method: POST
        name: createevent
        description: Google Calendar Create event
        call: google-calendar.createevent
        with:
          calendarId: rest.calendarId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}/events/{eventId}
      name: getevent
      operations:
      - method: GET
        name: getevent
        description: Google Calendar Get event
        call: google-calendar.getevent
        with:
          calendarId: rest.calendarId
          eventId: rest.eventId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}/events/{eventId}
      name: updateevent
      operations:
      - method: PUT
        name: updateevent
        description: Google Calendar Update event
        call: google-calendar.updateevent
        with:
          calendarId: rest.calendarId
          eventId: rest.eventId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}/events/{eventId}
      name: patchevent
      operations:
      - method: PATCH
        name: patchevent
        description: Google Calendar Patch event
        call: google-calendar.patchevent
        with:
          calendarId: rest.calendarId
          eventId: rest.eventId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}/events/{eventId}
      name: deleteevent
      operations:
      - method: DELETE
        name: deleteevent
        description: Google Calendar Delete event
        call: google-calendar.deleteevent
        with:
          calendarId: rest.calendarId
          eventId: rest.eventId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}/events/quickAdd
      name: quickaddevent
      operations:
      - method: POST
        name: quickaddevent
        description: Google Calendar Quick add event
        call: google-calendar.quickaddevent
        with:
          calendarId: rest.calendarId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}/acl
      name: listacl
      operations:
      - method: GET
        name: listacl
        description: Google Calendar List ACL rules
        call: google-calendar.listacl
        with:
          calendarId: rest.calendarId
        outputParameters:
        - type: object
          mapping: $.
    - path: /calendars/{calendarId}/acl
      name: insertacl
      operations:
      - method: POST
        name: insertacl
        description: Google Calendar Insert ACL rule
        call: google-calendar.insertacl
        with:
          calendarId: rest.calendarId
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/me/calendarList
      name: listcalendarlist
      operations:
      - method: GET
        name: listcalendarlist
        description: Google Calendar List calendar list
        call: google-calendar.listcalendarlist
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/me/calendarList
      name: insertcalendarlist
      operations:
      - method: POST
        name: insertcalendarlist
        description: Google Calendar Insert calendar to list
        call: google-calendar.insertcalendarlist
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/me/settings
      name: listsettings
      operations:
      - method: GET
        name: listsettings
        description: Google Calendar List settings
        call: google-calendar.listsettings
        outputParameters:
        - type: object
          mapping: $.
    - path: /freeBusy
      name: queryfreebusy
      operations:
      - method: POST
        name: queryfreebusy
        description: Google Calendar Query free/busy
        call: google-calendar.queryfreebusy
        outputParameters:
        - type: object
          mapping: $.
    - path: /colors
      name: getcolors
      operations:
      - method: GET
        name: getcolors
        description: Google Calendar Get colors
        call: google-calendar.getcolors
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: google-calendar-mcp
    transport: http
    description: MCP adapter for Google Calendar API for AI agent use.
    tools:
    - name: createcalendar
      description: Google Calendar Create calendar
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-calendar.createcalendar
      outputParameters:
      - type: object
        mapping: $.
    - name: getcalendar
      description: Google Calendar Get calendar
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-calendar.getcalendar
      with:
        calendarId: tools.calendarId
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updatecalendar
      description: Google Calendar Update calendar
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: google-calendar.updatecalendar
      with:
        calendarId: tools.calendarId
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletecalendar
      description: Google Calendar Delete calendar
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-calendar.deletecalendar
      with:
        calendarId: tools.calendarId
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listevents
      description: Google Calendar List events
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-calendar.listevents
      with:
        calendarId: tools.calendarId
        maxResults: tools.maxResults
        pageToken: tools.pageToken
        timeMin: tools.timeMin
        timeMax: tools.timeMax
        q: tools.q
        singleEvents: tools.singleEvents
        orderBy: tools.orderBy
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      - name: maxResults
        type: integer
        description: maxResults
      - name: pageToken
        type: string
        description: pageToken
      - name: timeMin
        type: string
        description: timeMin
      - name: timeMax
        type: string
        description: timeMax
      - name: q
        type: string
        description: q
      - name: singleEvents
        type: boolean
        description: singleEvents
      - name: orderBy
        type: string
        description: orderBy
      outputParameters:
      - type: object
        mapping: $.
    - name: createevent
      description: Google Calendar Create event
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-calendar.createevent
      with:
        calendarId: tools.calendarId
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getevent
      description: Google Calendar Get event
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-calendar.getevent
      with:
        calendarId: tools.calendarId
        eventId: tools.eventId
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      - name: eventId
        type: string
        description: eventId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updateevent
      description: Google Calendar Update event
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: google-calendar.updateevent
      with:
        calendarId: tools.calendarId
        eventId: tools.eventId
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      - name: eventId
        type: string
        description: eventId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: patchevent
      description: Google Calendar Patch event
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-calendar.patchevent
      with:
        calendarId: tools.calendarId
        eventId: tools.eventId
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      - name: eventId
        type: string
        description: eventId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteevent
      description: Google Calendar Delete event
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-calendar.deleteevent
      with:
        calendarId: tools.calendarId
        eventId: tools.eventId
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      - name: eventId
        type: string
        description: eventId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: quickaddevent
      description: Google Calendar Quick add event
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-calendar.quickaddevent
      with:
        calendarId: tools.calendarId
        text: tools.text
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      - name: text
        type: string
        description: text
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listacl
      description: Google Calendar List ACL rules
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-calendar.listacl
      with:
        calendarId: tools.calendarId
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: insertacl
      description: Google Calendar Insert ACL rule
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-calendar.insertacl
      with:
        calendarId: tools.calendarId
      inputParameters:
      - name: calendarId
        type: string
        description: calendarId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listcalendarlist
      description: Google Calendar List calendar list
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-calendar.listcalendarlist
      outputParameters:
      - type: object
        mapping: $.
    - name: insertcalendarlist
      description: Google Calendar Insert calendar to list
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-calendar.insertcalendarlist
      outputParameters:
      - type: object
        mapping: $.
    - name: listsettings
      description: Google Calendar List settings
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-calendar.listsettings
      outputParameters:
      - type: object
        mapping: $.
    - name: queryfreebusy
      description: Google Calendar Query free/busy
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-calendar.queryfreebusy
      outputParameters:
      - type: object
        mapping: $.
    - name: getcolors
      description: Google Calendar Get colors
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-calendar.getcolors
      outputParameters:
      - type: object
        mapping: $.