Meeting Scheduler MCP
Natural Language Meeting Scheduling with Personal Touch
The Problem with Scheduling Tools
Traditional scheduling tools like Calendly and Cal.com feel transactional for important contacts:
Impersonal: Automated links lack human touch
Manual Hell: Calendar tab-switching between email and scheduling apps
Context Loss: No integration with email conversations
Our Goal: Natural language scheduling that feels personal and integrates seamlessly with your email workflow.
What We're Building
A Mistral Le Chat powered meeting scheduler that combines:
Email Search: Find meeting requests in your inbox
Calendar Management: YAML-based scheduling with holidays support
Natural Language Interface: Chat-based scheduling workflow
Email Threading: Maintain conversation context with proper email headers
Architecture Overview
Tech Stack
Backend: Python 3.13+ with FastMCP
Email Integration: IMAP with TLS/SSL support
Calendar Storage: YAML file-based system
Transport: HTTP/SSE for Mistral connector
Data Models: Pydantic v2 for validation
Features
1. Email Integration
IMAP Search: Find emails by criteria (sender, subject, etc.)
Email Threading: Maintain conversation context with Message-ID, In-Reply-To, References
Draft Management: Save email drafts with proper threading headers
TLS/SSL Support: Secure connections with configurable SSL options
2. Calendar Management
YAML Configuration: Simple, human-readable calendar format
Weekly Availability: Define working hours and available slots
Holiday Support: Automatic holiday detection (country-specific)
Time Zone Awareness: Full timezone support with ZoneInfo
Slot Finding: Intelligent free slot detection
3. Natural Language Workflow
Find Requests: "Find meeting requests from Lisa"
Get Availability: "What times am I free this week?"
Suggest Times: "Suggest Thursday morning"
Confirm & Block: "Confirm the meeting and block the slot"
Getting Started
Prerequisites
Python 3.13+
IMAP-enabled email account
Mistral Le Chat integration
Installation
Configuration
Create a .env file with your IMAP settings:
Calendar Configuration
Edit calendar.yaml to define your availability:
Running the Server
API Tools
1. search_emails
Search emails with full metadata and threading support:
2. get_free_slots
Get available time slots from your calendar:
3. save_draft_and_block_slot
Complete workflow: block calendar slot and save confirmation email draft:
Testing
Unit Tests
Run tests with:
Integration Tests with Docker Compose
For IMAP integration testing, use Docker Compose with Greenmail:
Test Coverage
Run tests with coverage:
Contributing
Contributions welcome! Please follow:
Code Style: Ruff linting rules
Type Safety: Full Pydantic v2 typing
Testing: Comprehensive pytest coverage
Documentation: Keep README updated
License
MIT License - See LICENSE for details.