MCP Calendar Assistant
About
An intelligent assistant for managing calendars and tasks.
Details
- Author
- momer17
- Categories
- Productivity, Other, Project Management
Jump to
Setup
Install MCP Calendar Assistant in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/momer17/MailMCP
Follow the installation instructions in the repository README, then restart your MCP client.
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.
- 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
- 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
- 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
- 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
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ AI Assistant │────│ MCP Calendar │────│ Calendar APIs │ │ (Claude, etc) │ │ Server │ │ (Google, etc) │ └─────────────────┘ └──────────────────┘ └─────────────────┘ │ ┌──────────────────┐ │ PostgreSQL + │ │ Redis │ └──────────────────┘
- Node.js 18+
- PostgreSQL 12+
- Redis 6+ (optional but recommended)
- Google Cloud Project with Calendar API enabled
git clone <repository-url> cd mcp-calendar-server npm install
cp .env.example .env # Edit .env with your configuration
# Start PostgreSQL and Redis (using Docker) docker-compose up -d postgres redis # Or install locally and create database createdb calendar_assistant
npm run build npm start # Or for development npm run dev
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
- 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
- create_reminder- Create tasks and reminders
- get_reminders- Retrieve tasks with filtering
- update_reminder- Modify existing tasks
- complete_reminder- Mark tasks as completed
- 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
// 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"
// AI Assistant can process: "When are we all free next week for a 2-hour workshop?" "Find time for a 30-minute call with the marketing team" "What's my availability on Friday afternoon?"
// AI Assistant can process: "Remind me to call mom this weekend" "Add a high-priority task to review the Q4 budget by Friday" "Show me all my overdue tasks"
Add to yourclaude_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-client-id", "GOOGLE_CLIENT_SECRET": "your-client-secret" } } } }
import { CalendarMCPServer } from 'mcp-calendar-server'; const server = new CalendarMCPServer(); await server.start();
# Configure environment cp .env.example .env # Edit .env with your settings # Start all services docker-compose up -d # Check logs docker-compose logs -f mcp-calendar-server
# Build production image docker build -f docker/Dockerfile -t mcp-calendar-server . # Run with external database docker run -d \ --name calendar-server \ -p 3000:3000 \ -e DATABASE_URL="postgresql://user:pass@host:5432/db" \ -e REDIS_URL="redis://host:6379" \ -e GOOGLE_CLIENT_ID="your-id" \ -e GOOGLE_CLIENT_SECRET="your-secret" \ mcp-calendar-server
- JWT-based session management
- OAuth 2.0 with Google Calendar
- Secure token refresh handling
- Session cleanup and expiration
- Environment variable encryption
- Database connection encryption
- API rate limiting
- Input validation and sanitization
- Non-root container execution
- Minimal attack surface
- Regular security updates
- Audit logging
# Check server health curl http://localhost:3000/health # Check database connectivity curl http://localhost:3000/health/db # Check cache connectivity curl http://localhost:3000/health/cache
Structured JSON logging with configurable levels:
- Error tracking and alerting
- Performance metrics
- Security event logging
- Debug information for development
- Fork the repository
- Create a feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
# Install dependencies npm install # Run tests npm test # Run linter npm run lint # Format code npm run format # Start development server npm run dev
- ✅ Google Calendar integration
- ✅ Basic CRUD operations
- ✅ Free time finding
- ✅ Task management
- ✅ Caching layer
- 🔄 Outlook Calendar integration
- 🔄 Advanced scheduling algorithms
- 🔄 Natural language time parsing
- 🔄 Webhook support for real-time updates
- 📅 Apple Calendar integration
- 📅 CalDAV support
- 📅 Meeting room booking
- 📅 Travel time integration
- 📅 Smart conflict resolution
- 🔮 Machine learning insights
- 🔮 Predictive scheduling
- 🔮 Integration with other productivity tools
- 🔮 Mobile app companion
This project is licensed under the MIT License - see theLICENSEfile for details.
- Model Context Protocolby Anthropic
- Google Calendar API
- PostgreSQLfor reliable data storage
- Redisfor high-performance caching
- 📧 Email:support@example.com
- 💬 Discord:Join our community
- 📖 Documentation:docs.example.com
- 🐛 Issues:GitHub Issues
MCP server to interact with Routine: calendars, tasks, notes, etc.
Native macOS Calendar & Reminders MCP server with 24 tools using Swift EventKit - supports recurring events, location triggers, search, batch operations
Provides various DingTalk services including contacts, department management, robot messaging, calendar, and tasks.
Integrate Google services like Gmail, Calendar, Drive, and Tasks with MCP.
Tools that boost your productivity, from sending emails, scheduling to news updates—everything you need for your productivity.
Reclaim is an ai calendar management tool that helps you plan your schedule and tasks.
Connect AI clients to Cal.com scheduling through the Model Context Protocol using the hosted server at mcp.cal.com or a local instance.
Sync Calendars, Scheduling Links, AI Executive Scheduling Assistant, Unified Calendar
Interact with task, doc, and project data in Dart, an AI-native project management tool
Remote MCP server for MeisterTask. Create and manage projects, tasks, and notes from your AI assistant. Hosted (streamable-HTTP) — connect at https://mcp.meistertask.com/mcp
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





