Skip to main content
Glama
shaynemeyer

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
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool update
    • First observedgetMyCalendarDataByDate

TDQS

D1.7/5.0
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 issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shaynemeyer/gcal-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server