google-calendar-mcp
Google Meet Scheduler Agent (FastMCP + LangGraph + LangChain)
An AI scheduling assistant built with LangGraph, LangChain, and a custom FastMCP Server to manage Google Calendar events and generate Google Meet video conferencing links.
š Key Features
Custom FastMCP Server (
mcp_server.py):list_upcoming_events: Browse calendar schedule.check_availability: Query Google Calendarfreebusyfor user & attendees.create_meeting: Create calendar events with auto-generated Google Meet (hangoutsMeet) links (conferenceDataVersion=1).update_meeting: Reschedule or update event details.delete_meeting: Cancel events and auto-notify participants.get_meeting_details: Inspect meeting details, RSVP statuses, and Meet URLs.
LangGraph Agent (
agent.py):Contextual date/time parsing (converts relative times like "tomorrow 3 PM" to exact ISO-8601 strings in user timezone).
Multi-turn conversation state checkpointing via
MemorySaver.Tool calling integration using LangChain.
š Project Structure
google-meet-scheduler/
āāā auth.py # Google OAuth 2.0 & Calendar API v3 service helper
āāā mcp_server.py # FastMCP Server registering Google Meet/Calendar tools
āāā agent_state.py # LangGraph state schema (SchedulerState)
āāā agent.py # LangGraph state graph, system prompt, and tools node
āāā main.py # Interactive CLI Chat interface
āāā .env.example # Template for environment variables
āāā requirements.txt # Python dependencies
āāā README.md # Documentation & setup guideš Quick Start Guide
1. Install Dependencies
python -m venv venv
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
pip install -r requirements.txt2. Set Up Google Cloud Credentials
Go to Google Cloud Console.
Create a new project (e.g.
Google Meet MCP).Enable Google Calendar API.
Go to APIs & Services > Credentials -> Create Credentials -> OAuth client ID.
Select Application type: Desktop app.
Download the JSON file, rename it to
credentials.json, and place it in the project root directory.
3. Configure Environment Variables
Copy .env.example to .env:
cp .env.example .envFill in your API keys in .env:
DEFAULT_TIMEZONE=Asia/Kolkata
GEMINI_API_KEY=your_gemini_api_key
# or
OPENAI_API_KEY=your_openai_api_key4. Run the Agent
python main.pyNote: On your first run, a browser window will open asking you to log into your Google account and authorize Calendar access. Once approved, a token.json file will be created for seamless subsequent authentication.
š ļø Testing the FastMCP Server Standalone
You can inspect or test the FastMCP tools using the FastMCP CLI:
fastmcp dev mcp_server.pyš¬ Example Prompt Interactions
"List my upcoming meetings for the week."
"Check if I am free tomorrow between 2 PM and 5 PM."
"Schedule a Google Meet with john@example.com tomorrow at 4 PM for 45 minutes titled 'Q3 Sprint Planning'."
"Reschedule meeting ID
abc123xyzto Friday 11 AM.""Cancel meeting
abc123xyz."