What can you do with it?

Google Calendar allows you to manage calendar events programmatically. You can list events, create new appointments, update existing events, check availability with free/busy information, manage attendees, set reminders, and handle recurring events. This integration supports timezone-aware scheduling, making it perfect for meeting coordination, event planning, and calendar automation.

How to use it?

Basic Command Structure

/your-Google-Calendar-connection [action] [required-parameters] [optional-parameters]

Parameters

Required:

  • action - The operation to perform on calendar events

Tools

List Calendars

Get all calendars accessible to the user

Parameters:

  • None required

Example:

/your-Google-Calendar-connection
action: list-calendars

Response:

{
  "items": [
    {
      "id": "primary",
      "summary": "My Calendar",
      "timeZone": "America/Los_Angeles"
    }
  ]
}

List Events

Get events from a calendar within a date range

Parameters:

  • calendar-id (optional) - Calendar ID (default: “primary”)
  • time-min (optional) - Start date/time in ISO format
  • time-max (optional) - End date/time in ISO format
  • timezone (optional) - Timezone for the query

Example:

/your-Google-Calendar-connection
action: list-events
calendar-id: primary
time-min: 2024-01-15T00:00:00-08:00
time-max: 2024-01-15T23:59:59-08:00
timezone: America/Los_Angeles

Response:

{
  "items": [
    {
      "id": "event123",
      "summary": "Team Meeting",
      "start": {
        "dateTime": "2024-01-15T10:00:00-08:00",
        "timeZone": "America/Los_Angeles"
      },
      "end": {
        "dateTime": "2024-01-15T11:00:00-08:00",
        "timeZone": "America/Los_Angeles"
      }
    }
  ]
}

Create Event

Create a new calendar event

Parameters:

  • calendar-id (optional) - Calendar ID (default: “primary”)
  • summary (required) - Event title
  • start-datetime (required) - Start date/time with timezone offset
  • end-datetime (required) - End date/time with timezone offset
  • timezone (required) - Event timezone
  • location (optional) - Event location
  • description (optional) - Event description
  • attendees (optional) - Comma-separated email addresses

Example:

/your-Google-Calendar-connection
action: create-event
summary: Team Meeting
start-datetime: 2024-01-15T17:00:00-08:00
end-datetime: 2024-01-15T18:00:00-08:00
timezone: America/Los_Angeles
location: Conference Room A
attendees: john@company.com, jane@company.com

Response:

{
  "id": "newEvent456",
  "summary": "Team Meeting",
  "htmlLink": "https://calendar.google.com/event?eid=...",
  "start": {
    "dateTime": "2024-01-15T17:00:00-08:00",
    "timeZone": "America/Los_Angeles"
  }
}

Update Event

Update an existing calendar event

Parameters:

  • calendar-id (optional) - Calendar ID (default: “primary”)
  • event-id (required) - Event ID to update
  • summary (optional) - New event title
  • start-datetime (optional) - New start time
  • end-datetime (optional) - New end time
  • location (optional) - New location
  • attendees (optional) - Updated attendee list

Example:

/your-Google-Calendar-connection
action: update-event
event-id: event123
start-datetime: 2024-01-15T15:00:00-07:00
location: Conference Room B

Response:

{
  "id": "event123",
  "summary": "Team Meeting",
  "location": "Conference Room B",
  "start": {
    "dateTime": "2024-01-15T15:00:00-07:00"
  }
}

Delete Event

Delete a calendar event

Parameters:

  • calendar-id (optional) - Calendar ID (default: “primary”)
  • event-id (required) - Event ID to delete

Example:

/your-Google-Calendar-connection
action: delete-event
event-id: event123

Response:

{
  "status": "deleted"
}

Check Free/Busy

Check availability for one or more calendars

Parameters:

  • time-min (required) - Start of time range
  • time-max (required) - End of time range
  • timezone (required) - Timezone for the query
  • calendars (optional) - Comma-separated calendar IDs (default: “primary”)

Example:

/your-Google-Calendar-connection
action: check-freebusy
time-min: 2024-01-15T00:00:00-08:00
time-max: 2024-01-15T23:59:59-08:00
timezone: America/Los_Angeles
calendars: primary, user@company.com

Response:

{
  "calendars": {
    "primary": {
      "busy": [
        {
          "start": "2024-01-15T10:00:00-08:00",
          "end": "2024-01-15T11:00:00-08:00"
        }
      ]
    }
  }
}

Create Recurring Event

Create an event that repeats on a schedule

Parameters:

  • calendar-id (optional) - Calendar ID (default: “primary”)
  • summary (required) - Event title
  • start-datetime (required) - First occurrence start time
  • end-datetime (required) - First occurrence end time
  • timezone (required) - Event timezone
  • recurrence (required) - Recurrence rule (e.g., “WEEKLY”, “DAILY”)
  • frequency-details (optional) - Additional recurrence details

Example:

/your-Google-Calendar-connection
action: create-recurring-event
summary: Weekly Team Sync
start-datetime: 2024-01-15T10:00:00-08:00
end-datetime: 2024-01-15T11:00:00-08:00
timezone: America/Los_Angeles
recurrence: WEEKLY
frequency-details: BYDAY=MO

Response:

{
  "id": "recurringEvent789",
  "summary": "Weekly Team Sync",
  "recurrence": [
    "RRULE:FREQ=WEEKLY;BYDAY=MO"
  ]
}

Set Reminders

Add or update reminders for an event

Parameters:

  • calendar-id (optional) - Calendar ID (default: “primary”)
  • event-id (required) - Event ID
  • popup-minutes (optional) - Minutes before event for popup reminder
  • email-minutes (optional) - Minutes before event for email reminder

Example:

/your-Google-Calendar-connection
action: set-reminders
event-id: event123
popup-minutes: 15
email-minutes: 30

Response:

{
  "id": "event123",
  "reminders": {
    "useDefault": false,
    "overrides": [
      {"method": "popup", "minutes": 15},
      {"method": "email", "minutes": 30}
    ]
  }
}

Notes

All date/time values must include timezone offsets (e.g., -08:00 for PST). The system automatically retrieves the user’s timezone from Google Calendar settings. When listing events without specifying a date range, it defaults to the current day in the user’s timezone. Recurring events use RRULE format for recurrence patterns. Maximum 2500 events can be retrieved per request.