AddCal
UnexploredPublish public calendars and events others subscribe to: RSVPs, feeds and add-to-calendar links.
Install
mcp_config.json
{
"mcpServers": {
"co-addcal-addcal": {
"url": "https://addcal.co/mcp",
"type": "streamable-http"
}
}
}Documentation
AddCal MCP Server
A remote Model Context Protocol server for AddCal. Connect Claude, ChatGPT, Cursor or any MCP client and manage the calendars other people subscribe to.
https://addcal.co/mcp
No install, no API key. It is a hosted streamable HTTP server and authentication is OAuth.
This is not a Google Calendar MCP
Almost every calendar MCP server does the same job: it reads and writes your own schedule. Useful, and well covered already.
AddCal is the other side of the calendar. It manages the events you publish for an audience: a class timetable, a fixture list, a release schedule, a conference programme. The people receiving those events never get an invite. They subscribe to a feed, or they click an add-to-calendar link, and the event lands in whichever calendar app they already use.
That difference shows up in the tools. There is no accept-invite, because nobody is invited. There is list-subscribers, get-analytics and create-calendar-collection, because the questions you ask about a published calendar are how many people follow it and whether anyone actually added the event.
Use a Google Calendar MCP to run your day. Use this one to run a calendar other people follow.
Quick start
Pick your client. Cursor and VS Code install in one click.
Claude Code
claude mcp add --transport http addcal https://addcal.co/mcp
Then run /mcp inside Claude Code to sign in.
Claude Desktop and claude.ai
Settings, Connectors, Add custom connector, then paste https://addcal.co/mcp. Custom connectors need a paid plan.
ChatGPT
Settings, Apps & Connectors, Advanced, turn on Developer mode, then add https://addcal.co/mcp as a connector. Requires a paid plan on the web app.
Anything else
Any client that speaks streamable HTTP with OAuth. Windsurf, Goose, Zed and the JetBrains AI Assistant all take a remote MCP URL.
{
"mcpServers": {
"addcal": {
"type": "http",
"url": "https://addcal.co/mcp"
}
}
}
Authentication
OAuth 2.1 with PKCE and dynamic client registration. There is no API key to copy and paste.
Your client registers itself, you approve it in a browser, and it receives a token scoped to your team. It can reach exactly what you can reach, no more. Revoke any connected client from Settings, API.
What you can ask for
What have I got on next week?
Create a team standup every weekday at 9am and show me the dates first.
Who has RSVPed yes to the launch party?
Duplicate last month's workshop into March.
Which of my events got the most add-to-calendar clicks?
Tools
19 tools. RO is read only. Required parameters are marked *.
Search
| Tool | Parameters | |
|---|---|---|
search | RO | query*, limit, team_id |
One call across calendars, collections, events and RSVPs, returning the ids every other tool needs. Start here whenever something is named rather than identified.
Calendars
| Tool | Parameters | |
|---|---|---|
list-calendars | RO | search, limit, team_id |
create-calendar | name*, description, timezone, team_id |
Collections
A collection bundles several calendars behind one public page and subscribe link.
| Tool | Parameters | |
|---|---|---|
list-calendar-collections | RO | team_id |
create-calendar-collection | name*, calendar_ids*, description, allow_subscriber_selection, team_id |
Subscribers
| Tool | Parameters | |
|---|---|---|
list-subscribers | RO | calendar_id*, status, search, limit |
Returns personal data. Names and emails exist only for calendars that ask subscribers for details, so many rows are anonymous.
Events
| Tool | Parameters | |
|---|---|---|
list-events | RO | calendar_id, search, range, start_date, end_date, limit, team_id |
get-event | RO | event_id* |
create-event | calendar_id*, title*, date_start*, date_end*, timezone, description, location, is_all_day, is_draft, has_rsvp, recurrence_rule, series_title, reminder_before | |
update-event | event_id*, title, description, location, date_start, date_end, timezone, is_all_day, is_draft, has_rsvp, recurrence_rule, reminder_before | |
duplicate-event | event_id*, target_calendar_id, title, date_start, date_end | |
delete-event | destructive | event_id*, confirm*, notify_invitees |
preview-recurring-dates | RO | recurrence_rule*, date_start*, date_end*, timezone, is_all_day, count |
Recurrence uses RFC 5545 rules without the RRULE: prefix, such as FREQ=WEEKLY;BYDAY=MO;COUNT=10. Run preview-recurring-dates before creating a series to check the dates land where you expect.
RSVPs
| Tool | Parameters | |
|---|---|---|
list-rsvps | RO | event_id*, response_type, search, limit |
create-rsvp | destructive | event_id*, name*, email*, response_type*, confirm*, custom_fields, send_confirmation |
create-rsvp emails the attendee by default. Set send_confirmation to false to record an RSVP silently.
Invites
| Tool | Parameters | |
|---|---|---|
list-invites | RO | event_id*, status, search, limit |
send-event-invite | destructive | event_id*, email*, confirm* |
Account
| Tool | Parameters | |
|---|---|---|
get-analytics | RO | calendar_id, event_id, start_date, end_date, timezone, unique_only, include_series, team_id |
get-team-usage | RO | team_id |
Destructive tools
Three tools are annotated destructive, and all three require an explicit confirm parameter:
send-event-inviteandcreate-rsvpemail a real person. That cannot be recalled.delete-eventis permanent, and deleting a recurring event removes every instance in the series.
A well-behaved client surfaces these for approval before running them. Check the name and address when your assistant asks.
Plans and limits
The server is included on every plan, and the tools respect whatever your plan already allows. Collections, calendar invites and analytics stay gated to the plans that include them. When a tool hits a limit it explains why rather than retrying.
Links
- MCP server guide
- Full tool reference
- REST API reference
- Smithery listing
- Official MCP registry entry
About this repository
AddCal's MCP server is hosted, so there is nothing here to install or run. This repository holds the published server.json manifest and the documentation for the remote endpoint. The implementation lives in the main AddCal application.
Found a problem with a tool, or want one that does not exist yet? Open an issue.
Sourced from the repository README.
More in Developer Tools
- N8nFair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.202,280
- Gemini CliAn open-source AI agent that brings the power of Gemini directly into your terminal.106,664
- World MonitorLive global intelligence: real-time markets, conflicts, country risk, chokepoints, energy. 39 tools.84,026
- WorldmonitorReal-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface84,024
- Scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!76,275
- Ruflo🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated69,270