Renfield Calendar
FreeNot checkedUnified MCP server for calendar access connecting Exchange (EWS), Google Calendar, and CalDAV through a single MCP interface, enabling multi-calendar event mana
About
Unified MCP server for calendar access connecting Exchange (EWS), Google Calendar, and CalDAV through a single MCP interface, enabling multi-calendar event management via natural language.
README
Unified MCP server for calendar access — connect Exchange (EWS), Google Calendar, and CalDAV (Nextcloud, ownCloud, Radicale) through a single Model Context Protocol interface.
Features
- Multi-calendar — Configure multiple calendar accounts via YAML, query them individually or all at once
- Cross-calendar merge —
list_eventswithout a calendar parameter returns events from ALL calendars sorted chronologically - Three backends — Exchange Web Services (EWS), Google Calendar API, CalDAV
- No passwords in config — Credentials referenced via environment variable names
- Lazy connections — Backend clients are initialized on first use, not at startup
- Async-ready — All blocking I/O wrapped with
asyncio.run_in_executor - Google OAuth2 helper — Built-in
--auth googleCLI for initial token setup
Installation
pip install renfield-mcp-calendar
Or directly from GitHub:
pip install "renfield-mcp-calendar @ https://github.com/ebongard/renfield-mcp-calendar/archive/refs/heads/main.tar.gz"
Configuration
Set CALENDAR_CONFIG to point to your YAML config file (default: /config/calendar_accounts.yaml).
Example calendar_accounts.yaml
calendars:
# Exchange 2019 (on-premise, direct EWS endpoint)
- name: work
label: "Work Calendar"
type: ews
ews_url: "https://exchange.example.com/EWS/Exchange.asmx"
username_env: CALENDAR_WORK_USERNAME
password_env: CALENDAR_WORK_PASSWORD
# Google Calendar (OAuth2 Desktop Flow)
- name: family
label: "Family Calendar"
type: google
calendar_id: "primary"
credentials_file: "/config/google_calendar_credentials.json"
token_file: "/data/google_calendar_token.json"
# Nextcloud / CalDAV
- name: club
label: "Club Calendar"
type: caldav
url: "https://nextcloud.example.com/remote.php/dav/calendars/user/club/"
username_env: CALENDAR_CLUB_USERNAME
password_env: CALENDAR_CLUB_PASSWORD
Security: Passwords and tokens are never stored in the YAML file — use *_env fields to reference environment variable names.
Backend-specific notes
| Backend | Library | Auth | Notes |
|---|---|---|---|
| EWS | exchangelib | NTLM/Basic | Direct EWS URL, no Autodiscover needed |
| google-api-python-client | OAuth2 Desktop Flow | Token auto-refresh, one-time browser auth | |
| CalDAV | caldav | Basic Auth | Works with Nextcloud, ownCloud, Radicale, etc. |
Google Calendar setup (one-time)
- Google Cloud Console → Create project → Enable Google Calendar API
- Create OAuth2 credentials (Desktop App) → Download
credentials.json - Place as
google_calendar_credentials.jsonin your config directory - Run the auth flow:
python -m renfield_mcp_calendar --auth google --calendar family - Complete the browser-based authorization — token is saved automatically
MCP Tools
| Tool | Parameters | Description |
|---|---|---|
list_calendars |
— | List all configured calendar accounts |
list_events |
calendar?, start, end |
Events from one or all calendars. Empty calendar = merged from all. |
create_event |
calendar, title, start, end, description?, location? |
Create a new event |
update_event |
calendar, event_id, title?, start?, end?, ... |
Update specific fields of an event |
delete_event |
calendar, event_id |
Delete an event |
get_event |
calendar, event_id |
Get a single event with full details |
Example queries (via LLM)
- "Was steht heute an?" →
list_events()(all calendars, today) - "Was steht im Firmenkalender diese Woche?" →
list_events(calendar="work", start="...", end="...") - "Erstelle einen Familientermin morgen um 14 Uhr: Zahnarzt" →
create_event(calendar="family", ...) - "Bin ich morgen Nachmittag frei?" →
list_events(start="...", end="...")
Usage
# Run as MCP server (stdio transport)
python -m renfield_mcp_calendar
# Or via entry point
renfield-mcp-calendar
# Google OAuth2 setup (one-time)
python -m renfield_mcp_calendar --auth google --calendar family
Claude Desktop / MCP client config
{
"mcpServers": {
"calendar": {
"command": "python",
"args": ["-m", "renfield_mcp_calendar"],
"env": {
"CALENDAR_CONFIG": "/path/to/calendar_accounts.yaml",
"CALENDAR_WORK_USERNAME": "[email protected]",
"CALENDAR_WORK_PASSWORD": "secret"
}
}
}
}
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests (29 tests)
pytest tests/ -v
License
MIT
Installing Renfield Calendar
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/ebongard/renfield-mcp-calendarFAQ
Is Renfield Calendar MCP free?
Yes, Renfield Calendar MCP is free — one-click install via Unyly at no cost.
Does Renfield Calendar need an API key?
No, Renfield Calendar runs without API keys or environment variables.
Is Renfield Calendar hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Renfield Calendar in Claude Desktop, Claude Code or Cursor?
Open Renfield Calendar on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Notion
Read and write pages in your workspace
by NotionLinear
Issues, cycles, triage — from Claude
by LinearGoogle Drive
Search and read your Drive files
by Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
by mindsdbfulcradynamics/fulcra-context-mcp
MCP server for accessing personal health and biometric data including sleep stages, heart rate, HRV, glucose, workouts, calendar, and location via the Fulcra Li
by fulcradynamicsaymericzip/intlayer
A MCP Server that enhance your IDE with AI-powered assistance for Intlayer i18n / CMS tool: smart CLI access, access to the docs.
by aymericziprinadelph/Agent-MCP
A framework for creating multi-agent systems using MCP for coordinated AI collaboration, featuring task management, shared context, and RAG capabilities.
by rinadelphWhenLabs-org/when
Developer toolkit: auto-detect stack for AI context files, catch port conflicts, validate .env schemas, spot docs drift, audit dependency licenses, and time cod
by WhenLabs-orgBeltran12138/wecom-docs-mcp-server
WeCom (Enterprise WeChat) document operations via MCP: create, read, and edit Docs and Smartsheets (9 tools). Fills the doc-CRUD gap — existing WeCom MCP server
by Beltran12138madbonez/caldav-mcp
Universal MCP server for CalDAV protocol integration. Works with any CalDAV-compatible calendar server including Yandex Calendar, Google Calendar (via CalDAV),
by madbonezCompare Renfield Calendar with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All productivity MCPs
