Skip to main content
Glama
Google Calendar MCP Server

Google Calendar MCP Server

by shaynemeyer

Google Calendar MCP Server

A Model Context Protocol (MCP) server that provides integration with Google Calendar API. This server allows MCP clients to retrieve calendar events by date.

Architecture Diagram

┌─────────────────┐     ┌─────────────────────┐     ┌─────────────────────┐
│   MCP Client    │────▶│  MCP Server         │────▶│  Google Calendar    │
│   (Claude AI,   │     │  (gcal-mcp-server)  │     │      API v3         │
│   other AI      │     │                     │     │                     │
│   assistants)   │     │  ┌──────────────┐   │     │  ┌──────────────┐   │
└─────────────────┘     │  │    Tool:     │   │     │  │   Calendar   │   │
                        │  │getMyCalendar │   │     │  │    Events    │   │
         │              │  │DataByDate    │   │     │  │              │   │
         │              │  └──────────────┘   │     │  └──────────────┘   │
         │              │                     │     │                     │
         │              │  ┌──────────────┐   │     └─────────────────────┘
         │              │  │   Validation │   │                │
         │              │  │    (Zod)     │   │                │
         │              │  └──────────────┘   │                │
         │              │                     │                │
         │              │  ┌──────────────┐   │                │
         │              │  │   Transport  │   │                │
         │              │  │   (stdio)    │   │                │
         │              │  └──────────────┘   │                │
         │              └─────────────────────┘                │
         │                                                     │
         │              Environment Variables:                 │
         │              • GOOGLE_PUBLIC_API_KEY ──────────────┘
         │              • CALENDAR_ID
         │
         └─── Tool Call: getMyCalendarDataByDate(date)
              Returns: { meetings: [...] } or { error: "..." }

Data Flow

  1. MCP Client sends a tool call request to the server via stdio transport

  2. MCP Server receives and validates the request using Zod schema

  3. Tool Function processes the date parameter and makes API call to Google Calendar

  4. Google Calendar API returns events for the specified date range

  5. Server formats the response and sends it back to the client

  6. Client receives structured calendar data or error information

Related MCP server: google-calendar-mcp

Features

  • Retrieve calendar events for a specific date

  • Integration with Google Calendar API v3

  • Simple MCP tool interface with date validation

  • Error handling for API failures

Prerequisites

  • Node.js (ES modules support required)

  • Google Calendar API access

  • Google API key with Calendar API enabled

  • Target Google Calendar ID

Installation

  1. Clone the repository:

git clone <repository-url>
cd gcal-mcp-server
  1. Install dependencies:

npm install
  1. Set up environment variables:

cp example.env .env
  1. Configure your .env file:

GOOGLE_PUBLIC_API_KEY=your_google_api_key_here
CALENDAR_ID=your_calendar_id_here

Usage

Start the MCP server:

npm start

The server will run using stdio transport and register the following tool:

getMyCalendarDataByDate

Retrieves calendar events for a specified date.

Parameters:

  • date (string): A valid date string (e.g., "2024-01-15", "2024-01-15T10:00:00Z")

Returns:

  • meetings: Array of formatted meeting strings with summary and start time

  • error: Error message if the API call fails

Development

This project uses ES modules and requires Node.js with module support.

Project Structure:

  • server.js - Main MCP server implementation

  • package.json - Project configuration and dependencies

  • example.env - Environment variable template

  • .env - Your local environment configuration (git-ignored)

Dependencies

  • @modelcontextprotocol/sdk - MCP framework

  • googleapis - Google APIs client library

  • dotenv - Environment variable loading

  • zod - Input validation

License

MIT

Available Tools

1 tool
getMyCalendarDataByDateD

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    D1.7/5.0

    Scored across 1 tool

    Disambiguation5/5

    With only one tool, there is no possibility of confusion or overlap between tools. The single tool stands alone with no ambiguity about its purpose relative to other tools in the set.

    Naming Consistency5/5

    A single tool inherently has perfect naming consistency, as there are no other tools to compare it against for patterns or conventions. The naming stands alone without any inconsistency issues.

    Tool Count2/5

    A single tool for a Google Calendar server is too few for the apparent scope, as calendar operations typically require multiple actions like creating, updating, deleting events, and listing calendars. This minimal set will likely cause agent failures due to lack of functionality.

    Completeness1/5

    The tool set is severely incomplete for a calendar domain, missing essential CRUD operations for events and calendars. With only a single data retrieval tool, agents cannot perform basic calendar management tasks, leading to significant gaps in coverage.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to manage Google Calendar by listing, creating, updating, and deleting events. It also includes functionality to find available time slots for scheduling.
      -