Publish public calendars and events others subscribe to: RSVPs, feeds and add-to-calendar links.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by AddCal.
searchquery*`, `limit`, `team_id
list-calendarssearch`, `limit`, `team_id
create-calendarname*`, `description`, `timezone`, `team_id
list-calendar-collectionsteam_id
create-calendar-collectionname*`, `calendar_ids*`, `description`, `allow_subscriber_selection`, `team_id
list-subscriberscalendar_id*`, `status`, `search`, `limit
A remote Model Context Protocol server for AddCal. Connect Claude, ChatGPT, Cursor or any MCP client and manage the calendars other people subscribe to.
No install, no API key. It is a hosted streamable HTTP server and authentication is OAuth.
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.
Pick your client. Cursor and VS Code install in one click.
Claude Code
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.
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.
19 tools. RO is read only. Required parameters are marked *.
| 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.
| Tool | Parameters | |
|---|---|---|
list-calendars | RO | search, limit, team_id |
create-calendar | name*, description, timezone, team_id |
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 |
| 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.
| 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.
| 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.
| Tool | Parameters | |
|---|---|---|
list-invites | RO | event_id*, status, search, limit |
send-event-invite | destructive | event_id*, email*, confirm* |
| 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 |
Three tools are annotated destructive, and all three require an explicit confirm parameter:
send-event-invite and create-rsvp email a real person. That cannot be recalled.delete-event is 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.
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.
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.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/addcal-2)<a href="https://allmcps.com/mcp/addcal-2"><img src="https://allmcps.com/api/badge/addcal-2?style=directory" alt="AddCal on AllMCPs" /></a>