Skip to main content
Glama

Claude Meet MCP

"Schedule a meeting with everyone" → invites sent. That's it.

Stop playing email tennis. Let AI schedule your meetings in seconds.

PyPI version Python 3.10+ License: MIT CI


The Problem

"Are you free Tuesday at 2pm?" "No, how about Wednesday?" "I have a conflict at 3..." "What about Thursday morning?" [5 emails later, 30 minutes wasted]

The Solution

You: "Schedule a meeting with john@example.com and alice@example.com next week" Claude Meet: Checks all calendars, finds mutual availability, books the meeting Done in 10 seconds.

You save: 5+ hours per week on scheduling.


Quick Start | Demo | Features | Documentation


Why Claude Meet?

Feature

Email Back-and-Forth

Calendly

Claude Meet

Checks everyone's calendar

Manual

One-way only

Automatic

Natural language

No

No

Yes

AI-powered time suggestions

No

No

Yes

Works from terminal

No

No

Yes

Integrates with Claude Desktop

No

No

Yes

Privacy-first (your data stays yours)

Yes

No

Yes

Cost

Free but slow

$10-15/mo

Free


Related MCP server: Schedulia MCP

See It In Action

CLI Demo

$ claude-meet chat

Claude Calendar Scheduler
Timezone: Europe/Berlin
Type 'help' for commands, 'exit' to quit
============================================================

You: Schedule a 1-hour meeting with alice@company.com and bob@company.com tomorrow

Claude: I'll find a time that works for everyone. Checking calendars...

Found these available slots for tomorrow:
  1. 9:00 AM - 10:00 AM (Recommended - prime morning time)
  2. 2:00 PM - 3:00 PM (Good option)
  3. 4:00 PM - 5:00 PM

Which time works best? And what should I call this meeting?

You: Let's do 2pm, call it "Project Kickoff"

Claude: Done! I've created "Project Kickoff" for tomorrow 2:00 PM - 3:00 PM.
Calendar invites sent to alice@company.com and bob@company.com.

Claude Desktop Integration

Use Claude Meet directly in Claude Desktop - just ask Claude to schedule meetings naturally:

You: Check when sarah@example.com is free next Tuesday

Claude: I checked Sarah's calendar for next Tuesday. She's available:
  - 9:00 AM - 11:30 AM
  - 2:00 PM - 5:00 PM

Would you like me to schedule a meeting?

Claude Meet Demo


Quick Start (60 seconds)

Step 1: Install

pip install claude-meet-mcp

Step 2: Setup

claude-meet init

The wizard guides you through:

  • Setting your Anthropic API key

  • Connecting Google Calendar (with step-by-step instructions)

  • Configuring your timezone

Step 3: Start scheduling

claude-meet chat

That's it. No complex configuration. No YAML files. Just works.

git clone https://github.com/ShaunakInamdar/claude-meet-mcp.git
cd claude-meet-mcp
pip install -e .

Features

Talk Naturally

No commands to memorize. No special syntax. Just tell Claude what you need.

"Find a time for a 30-minute sync with the design team next week"
"Schedule a demo with client@company.com on Friday afternoon"
"When is everyone free for a team lunch?"

Smart Conflict Detection

Never double-book again. Claude Meet checks everyone's calendar before suggesting times.

Intelligent Time Suggestions

Times are ranked by preference:

  • Avoids early mornings and late evenings

  • Respects lunch hours

  • Prefers prime collaboration times (9-11 AM)

Google Meet Integration

Add video conferencing with one word:

"Schedule a video call with remote-team@company.com tomorrow"

Works Everywhere

  • CLI: For terminal lovers

  • Claude Desktop: Native MCP integration

  • Claude.ai: Use as an MCP tool


Perfect For

Engineering Managers

  • Schedule 1-on-1s across your entire team in minutes

  • Find time for all-hands when everyone's calendar is packed

  • Coordinate cross-team meetings without the back-and-forth

Remote Teams

  • Handles multiple timezones automatically

  • Finds overlapping work hours across continents

  • Async-first: schedule now, meet later

Founders & Sales

  • Book demos with prospects instantly

  • Coordinate investor meetings efficiently

  • Stop losing deals to scheduling friction


Claude Desktop Integration

Add Claude Meet to Claude Desktop for seamless scheduling:

claude-meet mcp-setup

This generates the config to add to your Claude Desktop settings. Once configured, Claude can schedule meetings directly from your conversations.

Available Tools

Tool

What It Does

check_calendar_availability

See when people are free or busy

find_meeting_times

Get AI-ranked suggestions for meeting times

create_calendar_event

Book meetings and send invites

Full MCP setup guide


Configuration

Customize Claude Meet to match your work style:

# Set your timezone
claude-meet config set TIMEZONE=America/New_York

# Change business hours
claude-meet config set BUSINESS_HOURS_START=8
claude-meet config set BUSINESS_HOURS_END=18

# View all settings
claude-meet config

Setting

Default

Description

TIMEZONE

Auto-detected

Your local timezone

BUSINESS_HOURS_START

9

When your workday starts

BUSINESS_HOURS_END

17

When your workday ends

DEFAULT_DURATION

60

Default meeting length (minutes)


Commands

Command

Description

claude-meet init

Interactive setup wizard

claude-meet chat

Start scheduling conversations

claude-meet check

Verify your setup is working

claude-meet config

View/edit configuration

claude-meet auth

Re-authenticate with Google

claude-meet mcp-setup

Get Claude Desktop config

claude-meet upcoming

See your next meetings


Architecture

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   Claude CLI    │────▶│   Claude API     │────▶│ Calendar Client │
│   or Desktop    │     │  (Tool Calling)  │     │  (Google API)   │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                                │
                                ▼
                        ┌──────────────────┐
                        │    Scheduler     │
                        │ (Time Ranking)   │
                        └──────────────────┘

How it works:

  1. You describe what you need in natural language

  2. Claude interprets your request and calls the right tools

  3. Calendar Client checks Google Calendar for availability

  4. Scheduler ranks times by preference

  5. Claude presents options and books your choice


Troubleshooting

Run the diagnostic command first:

claude-meet check

This shows what's configured and what needs attention.

Common Issues

"API key not found"

claude-meet config set ANTHROPIC_API_KEY=sk-ant-...

"Google credentials not found"

claude-meet init  # Follow the Google Cloud setup steps

"Authentication expired"

claude-meet logout && claude-meet auth

Full troubleshooting guide


Contributing

We welcome contributions! See our Contributing Guide for details.

# Run tests
pytest tests/ -v

# Run linting
ruff check claude_meet/

Privacy & Security

  • Your data stays yours: We never see your calendar data

  • Local tokens: Google OAuth tokens stored locally in ~/.claude-meet/

  • No tracking: Zero analytics or telemetry

  • Open source: Audit the code yourself


Support the Project

If Claude Meet saves you time:

  • Star this repo to help others find it

  • Report bugs to help us improve

  • Share with colleagues who hate scheduling


License

MIT License - Use it however you want.


Available Tools

3 tools
check_calendar_availabilityA

Check the free/busy status of one or more people's calendars for a specific date and time range. Returns when people are busy and when they're free. All times are in UTC timezone.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailsYesArray of email addresses to check (e.g., ['alice@example.com', 'bob@example.com'])
dateYesThe date to check in YYYY-MM-DD format (e.g., '2026-01-20')
start_timeNoOptional start time in HH:MM 24-hour format (e.g., '09:00'). Defaults to 09:00.
end_timeNoOptional end time in HH:MM 24-hour format (e.g., '17:00'). Defaults to 17:00.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It states the tool returns busy/free status and uses UTC timezone, which is good. However, it doesn't disclose details such as whether event names are returned, limitations on calendar types, or how it handles all-day events.

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

Conciseness5/5

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

The description is extremely concise: two sentences with no wasted words. It front-loads the core purpose and includes key usage context (UTC timezone) efficiently.

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

Completeness4/5

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

Given the tool's simplicity (4 parameters, no nested objects, no output schema), the description is mostly complete. It explains inputs, defaults, timezone, and return type (busy/free). Could add more on exact output structure, but not required due to low complexity.

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

Parameters4/5

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

Schema description coverage is 100%, setting baseline at 3. The description adds value by specifying default start and end times (09:00 and 17:00) and that all times are in UTC, which are not in the schema. This helps the agent understand parameter behavior.

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

Purpose5/5

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

The description clearly states the verb ('Check'), resource ('free/busy status of people's calendars'), and scope ('one or more people, specific date and time range'). It distinguishes itself from siblings: 'create_calendar_event' (creating events) and 'find_meeting_times' (finding meeting times) are different tools.

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

Usage Guidelines3/5

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

The description mentions that all times are in UTC and provides default times, but it doesn't explicitly state when to use this tool versus alternatives (e.g., 'find_meeting_times') nor when not to use it. Usage is implied but lacks explicit guidance.

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

create_calendar_eventA

Create a new calendar event and send email invitations to all attendees. The event will appear on everyone's calendar. Calendar is configured for UTC timezone.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYesThe title/subject of the meeting (e.g., 'Q1 Planning Meeting')
start_timeYesMeeting start time in ISO 8601 format with timezone. IMPORTANT: Use the exact 'start' value from find_meeting_times results - do not construct your own time string.
end_timeYesMeeting end time in ISO 8601 format with timezone. IMPORTANT: Use the exact 'end' value from find_meeting_times results - do not construct your own time string.
attendeesYesList of email addresses to invite to the meeting
descriptionNoOptional detailed description or agenda for the meeting
add_meet_linkNoIf true, adds a Google Meet video conference link

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description covers key behaviors (sending invitations, UTC timezone). However, it omits potential side effects, permissions, or error handling, leaving some gaps.

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

Conciseness5/5

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

The description is two sentences, front-loading the primary action and adding only essential context. No filler or redundancy.

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

Completeness4/5

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

Given 6 parameters (fully described in schema) and no output schema, the description provides sufficient context for event creation with invitations and timezone. Return value and error cases are missing but not critical.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds minimal value beyond the schema. It reiterates the instruction to use times from find_meeting_times, which is helpful but not substantial.

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

Purpose5/5

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

The description clearly states it creates a calendar event and sends email invitations, distinguishing it from sibling tools like check_calendar_availability and find_meeting_times.

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

Usage Guidelines3/5

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

The description provides context (event appears on calendars, UTC timezone) but does not explicitly state when to use this tool versus its siblings or any prerequisites.

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

find_meeting_timesA

Find available meeting time slots that work for all attendees. Analyzes calendars and returns the best options ranked by preference. Returns ISO timestamps with correct UTC timezone offset - use these exact values when creating events.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailsYesEmail addresses of all meeting attendees
dateNoTarget date in YYYY-MM-DD format
duration_minutesYesHow long the meeting should be in minutes (e.g., 30, 60, 90)
preferencesNoOptional scheduling preferences

TDQS

A3.7/5.0
Behavior3/5

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

No annotations, so description carries full burden. It explains that it analyzes calendars and returns ranked options with timestamps, implying read-only behavior. However, it does not explicitly state it does not modify data, nor does it mention error handling or limitations.

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

Conciseness5/5

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

Two concise sentences: first states core purpose, second adds output usage guideline. No redundant or extraneous information, every sentence adds value.

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

Completeness3/5

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

With 4 parameters, a nested preferences object, and no output schema, the description covers purpose and output format but lacks details on behavior (e.g., ranking logic, no-slot handling, error conditions). Completeness is adequate but not thorough.

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

Parameters3/5

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

Input schema has 100% description coverage, so schema already details all parameters. The description adds no additional parameter-level information beyond schema, earning the baseline score of 3 for high coverage.

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

Purpose5/5

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

Description clearly states the tool finds available meeting time slots that work for all attendees, using specific verbs and resource. It distinguishes from siblings: check_calendar_availability likely checks a single slot, and create_calendar_event creates an event, while this tool focuses on finding times.

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

Usage Guidelines3/5

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

Provides guidance on using the output timestamps for event creation, but does not explicitly state when to use this tool versus siblings or when not to use it. Implicitly, it is for finding slots before creating events, but lacks explicit context.

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. 3 tool updatesv1.0.0
    • First observedcheck_calendar_availability
    • First observedcreate_calendar_event
    • First observedfind_meeting_times

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a distinct purpose: checking raw availability, finding optimal meeting times, and creating events. There is no ambiguity between them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscores (check_calendar_availability, create_calendar_event, find_meeting_times).

Tool Count5/5

3 tools is a well-scoped set for a meeting scheduling server, covering the essential steps without unnecessary bloat.

Completeness4/5

The set covers the core workflow of finding and creating events, but lacks update/delete capabilities for events, which could be a minor gap.

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to intelligently schedule meetings by checking Microsoft Outlook calendars, finding available time slots across multiple participants, and automatically booking meetings with Teams integration. Uses Microsoft Graph API with smart fallback logic for optimal scheduling.
    1
    -
  • F
    license
    C
    quality
    D
    maintenance
    A meeting scheduling assistant that enables users to view schedules, manage incoming requests, and send meeting invitations via the Schedulia API. It facilitates seamless coordination of meeting times and participant management through natural language commands.
    4
    1
    -

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/ShaunakInamdar/claude-meet-mcp'

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