Skip to main content

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.
I