MCP Calendar Assistant MCP Server

$git clone <repository-url> && cd mcp-calendar-server && npm install && npm run build && npm start
README.md

Intelligent calendar and task management through natural language

MCP Calendar Assistant

A powerful Model Context Protocol (MCP) server that provides intelligent calendar and task management capabilities. This server allows AI assistants to interact with your calendar through natural language, handling everything from simple event creation to complex scheduling analysis.

🌟 Features

Core Calendar Operations

  • Multi-Calendar Support: Google Calendar (with Outlook/Apple Calendar planned)
  • Event Management: Create, read, update, delete calendar events
  • Smart Scheduling: Find free time slots across multiple calendars
  • Availability Checking: Check if people are available for meetings
  • Meeting Suggestions: AI-powered optimal meeting time recommendations

Task & Reminder Management

  • Smart Reminders: Create and manage tasks with priorities and due dates
  • Natural Language: Process tasks from unstructured text input
  • Analytics: Track completion rates and productivity patterns

Intelligence Features

  • Schedule Analysis: Understand your scheduling patterns and habits
  • Contact Suggestions: Auto-suggest frequent collaborators
  • Similar Events: Find related events for context
  • Working Hours: Respect user preferences and constraints

Performance & Reliability

  • Intelligent Caching: Redis-powered caching with configurable TTLs
  • Batch Operations: Efficient bulk calendar operations
  • Error Handling: Robust error recovery and retry mechanisms
  • Rate Limiting: Built-in protection against API abuse

šŸ—ļø Architecture

ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”    ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”    ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│   AI Assistant  │────│  MCP Calendar    │────│  Calendar APIs  │
│   (Claude, etc) │    │     Server       │    │ (Google, etc)   │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜    ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜    ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                              │
                       ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
                       │  PostgreSQL +    │
                       │     Redis        │
                       ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

šŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • PostgreSQL 12+
  • Redis 6+ (optional but recommended)
  • Google Cloud Project with Calendar API enabled

1. Clone and Install

git clone <repository-url>
cd mcp-calendar-server
npm install

2. Environment Setup

cp .env.example .env
# Edit .env with your configuration

3. Google Calendar Setup

  1. Go to Google Cloud Console
  2. Create a new project or select existing
  3. Enable the Google Calendar API
  4. Create OAuth 2.0 credentials
  5. Add your credentials to .env

4. Database Setup

# Start PostgreSQL and Redis (using Docker)
docker-compose up -d postgres redis

# Or install locally and create database
createdb calendar_assistant

5. Build and Start

npm run build
npm start

# Or for development
npm run dev

šŸ”§ Configuration

Environment Variables

Variable Description Default
DATABASE_URL PostgreSQL connection string postgresql://localhost:5432/calendar_assistant
REDIS_URL Redis connection string redis://localhost:6379
GOOGLE_CLIENT_ID Google OAuth client ID Required
GOOGLE_CLIENT_SECRET Google OAuth client secret Required
JWT_SECRET Secret for JWT tokens Required

Feature Flags

FEATURE_CACHING=true          # Enable Redis caching
FEATURE_BATCHING=true         # Enable batch operations
FEATURE_PREFETCHING=true      # Enable predictive data loading
FEATURE_ANALYTICS=false       # Enable usage analytics
FEATURE_MULTI_PROVIDER=false  # Enable multiple calendar providers

šŸ“‹ Available Tools

Calendar Operations

  • get_calendars - List available calendars
  • get_calendar_events - Retrieve events from a calendar
  • create_calendar_event - Create new events
  • update_calendar_event - Modify existing events
  • delete_calendar_event - Remove events
  • find_free_time - Find available time slots
  • check_availability - Check if people are free
  • suggest_meeting_times - AI-powered meeting suggestions

Task Management

  • create_reminder - Create tasks and reminders
  • get_reminders - Retrieve tasks with filtering
  • update_reminder - Modify existing tasks
  • complete_reminder - Mark tasks as completed

Analytics & Insights

  • analyze_schedule_patterns - Understand scheduling habits
  • get_working_hours - Retrieve work schedule preferences
  • get_recent_similar_events - Find related events
  • get_contact_suggestions - Auto-suggest contacts

šŸ’¬ Usage Examples

Creating Events

// AI Assistant can process:
"Schedule a dentist appointment next Tuesday at 2pm"
"Book a team meeting with John and Sarah for next week, 1 hour duration"
"Create a recurring weekly standup every Monday at 9am"

Finding Free Time

// AI Assistant can process:
"When are we all free next week for a 2-hour wo

Tools (11)

get_calendarsList available calendars
get_calendar_eventsRetrieve events from a calendar
create_calendar_eventCreate new events
update_calendar_eventModify existing events
delete_calendar_eventRemove events
find_free_timeFind available time slots
check_availabilityCheck if people are free
suggest_meeting_timesAI-powered meeting suggestions
create_reminderCreate tasks and reminders
get_remindersRetrieve tasks with filtering
analyze_schedule_patternsUnderstand scheduling habits

Environment Variables

DATABASE_URLrequiredPostgreSQL connection string
GOOGLE_CLIENT_IDrequiredGoogle OAuth client ID
GOOGLE_CLIENT_SECRETrequiredGoogle OAuth client secret
JWT_SECRETrequiredSecret for JWT tokens
REDIS_URLRedis connection string

Configuration

claude_desktop_config.json
{"mcpServers":{"calendar-assistant":{"command":"node","args":["/path/to/mcp-calendar-server/dist/index.js"],"env":{"DATABASE_URL":"postgresql://localhost:5432/calendar_assistant","GOOGLE_CLIENT_ID":"your_id","GOOGLE_CLIENT_SECRET":"your_secret","JWT_SECRET":"your_jwt_secret"}}}}

Try it

→Schedule a dentist appointment next Tuesday at 2pm
→Book a team meeting with John and Sarah for next week, 1 hour duration
→When are we all free next week for a 2-hour workshop?
→Create a recurring weekly standup every Monday at 9am
→Analyze my schedule patterns to find the best time for deep work

Frequently Asked Questions

What are the key features of MCP Calendar Assistant?

Multi-Calendar Support for Google Calendar event management. Smart Scheduling to find free time slots across multiple calendars. Task & Reminder Management with priorities and due dates. Schedule Analysis to understand productivity patterns and habits. Intelligent Caching using Redis for high performance.

What can I use MCP Calendar Assistant for?

Automating meeting coordination by checking participant availability. Converting unstructured chat text into calendar events and reminders. Optimizing daily schedules based on AI-powered meeting time recommendations. Managing complex recurring events and bulk calendar operations. Tracking task completion rates and productivity analytics.

How do I install MCP Calendar Assistant?

Install MCP Calendar Assistant by running: git clone <repository-url> && cd mcp-calendar-server && npm install && npm run build && npm start

What MCP clients work with MCP Calendar Assistant?

MCP Calendar Assistant works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use MCP Calendar Assistant with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free