View as Markdown

Google Calendar Integration

Manage Google Calendar events and schedules

The Google Calendar integration provides access to manage Google Calendar events and schedules through the Integrate MCP server.

Installation

The Google Calendar integration is included with the SDK:

import { googleCalendarIntegration } from "integrate-sdk/server";

Setup

1. Create a Google Calendar OAuth App

  1. Go to Google Cloud Console
  2. Create a new OAuth application
  3. Configure your redirect URI
  4. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Google Calendar integration to your server configuration. The integration automatically reads GOOGLE_CALENDAR_CLIENT_ID and GOOGLE_CALENDAR_CLIENT_SECRET from your environment variables:

import { createMCPServer, googleCalendarIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    googleCalendarIntegration({
    }),
  ],
});

You can override the environment variables by passing explicit values:

googleCalendarIntegration({
  clientId: process.env.CUSTOM_GOOGLE_CALENDAR_ID,
  clientSecret: process.env.CUSTOM_GOOGLE_CALENDAR_SECRET,
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("google_calendar");
const result = await client.google_calendar.listCalendars({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, googleCalendarIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [googleCalendarIntegration()],
});

Configuration Options

export interface GoogleCalendarIntegrationConfig {
  /** Google OAuth client ID (defaults to GOOGLE_CALENDAR_CLIENT_ID env var) */
  clientId?: string;

Tools

google_calendar_create_calendar

Create a new calendar

export interface GoogleCalendarCreateCalendarParams {
    summary: string;

google_calendar_create_event

Create a new event

export interface GoogleCalendarCreateEventParams {
    /** Calendar ID */
    calendarId: string;

google_calendar_delete_calendar

Delete a calendar

export interface GoogleCalendarDeleteCalendarParams {
    calendar_id: string;

google_calendar_delete_event

Delete an event

export interface GoogleCalendarDeleteEventParams {
    /** Calendar ID */
    calendarId: string;

google_calendar_freebusy

Calendar freebusy

export interface GoogleCalendarFreebusyParams {
    calendar_ids: string;

google_calendar_get_calendar

Get a specific calendar

export interface GoogleCalendarGetCalendarParams {
    /** Calendar ID (use 'primary' for the user's primary calendar) */
    calendarId: string;

google_calendar_get_event

Get a specific event

export interface GoogleCalendarGetEventParams {
    /** Calendar ID */
    calendarId: string;

google_calendar_list_attendees

List attendees for an event

export interface GoogleCalendarListAttendeesParams {
    /** Calendar ID */
    calendarId: string;

google_calendar_list_calendars

List calendars

export interface GoogleCalendarListCalendarsParams {
    /** Maximum number of entries returned */
    maxResults?: number;

google_calendar_list_events

List events in a calendar

export interface GoogleCalendarListEventsParams {
    /** Calendar ID */
    calendarId: string;

google_calendar_quick_add

Quickly add an event using natural language

export interface GoogleCalendarQuickAddParams {
    /** Calendar ID */
    calendarId: string;

google_calendar_update_event

Update an existing event

export interface GoogleCalendarUpdateEventParams {
    /** Calendar ID */
    calendarId: string;

Notes

  • Category: Productivity
  • Authentication mode: OAuth