Teamup Calendar MCP by usefulapi
Server Details
Read and search Teamup Calendar events and sub-calendars; create, update, delete and undo events.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
15 toolsteamup_create_eventCreate eventInspect
WRITE: create an event. Needs a calendar key with add or modify permission. Give at least subcalendar_ids, start and end. Not idempotent: a repeated call creates a second event. The reply holds the new event and an undo_id; teamup_undo_event_action removes the event again within one hour. POST /{calendarKey}/events.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End, same format as start. Must not be before start. | |
| who | No | The "who" field. | |
| notes | No | Notes, in markdown. | |
| rrule | No | Recurrence rule (iCalendar RRULE, e.g. FREQ=WEEKLY;COUNT=10). Omit for a single event. | |
| start | Yes | Start, e.g. 2026-10-14T09:00:00 (calendar timezone) or with an offset such as +02:00. For an all-day event: yyyy-mm-dd. | |
| title | No | Event title. | |
| custom | No | Values of custom fields, keyed by field id (see teamup_get_calendar -> fields). | |
| all_day | No | True for an all-day event (default false). | |
| location | No | ||
| signup_limit | No | Maximum signups; required by Teamup when signup_enabled is true. | |
| signup_enabled | No | Let people sign up (default false). | |
| subcalendar_ids | Yes | Sub-calendar ids the event belongs to (from teamup_list_subcalendars). | |
| comments_enabled | No | Allow comments (default false). | |
| signup_visibility | No | Who sees the signups: all_users or users_with_modify_permission. | |
| comments_visibility | No | Who sees the comments: all_users or users_with_modify_permission. |
teamup_create_subcalendarCreate sub-calendarInspect
WRITE: create a sub-calendar. Needs a calendar key with admin permission, and the plan may limit how many exist. Not idempotent: a repeated call creates a second one. POST /{calendarKey}/subcalendars.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Sub-calendar name. | |
| color | No | Color number from Teamup's palette (default 17). | |
| active | No | Active (default true). | |
| overlap | No | Allow overlapping events on it (default true). |
teamup_delete_eventDelete eventDestructiveInspect
WRITE, DESTRUCTIVE: delete an event, or for a recurring event the chosen occurrences. Needs modify permission. Not retried. The reply holds an undo_id; teamup_undo_event_action restores the event within one hour, after that the deletion is permanent. For one occurrence use the occurrence id (123-rid-) and redit single (the default); redit all deletes the whole series. DELETE /{calendarKey}/events/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| redit | No | For a recurring event: single (default), future or all. With all the whole series is deleted. | |
| version | No | The event's version (from teamup_get_event). If set, the delete is refused when the event changed since. | |
| event_id | Yes | Event id (occurrence id for one occurrence of a recurring event). |
teamup_get_calendarGet calendarRead-onlyInspect
The calendar this connection points at: title, timezone and date settings, custom event fields, sub-calendars, the permission of the calendar key in use and the plan's features. Call this first to learn the sub-calendar ids and the timezone. The calendar key itself is never returned. GET /{calendarKey}/configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
teamup_get_eventGet eventRead-onlyInspect
One event by id: title, times, sub-calendars, location, who, notes (markdown), recurrence rule, custom fields, signups, comments, attachments (metadata), version, change history and reminders. Use the occurrence id (123-rid-) for one occurrence of a recurring event. GET /{calendarKey}/events/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | Event id. |
teamup_get_subcalendarGet sub-calendarRead-onlyInspect
One sub-calendar by id: name, color, overlap rule, active state and which links may use it. GET /{calendarKey}/subcalendars/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| subcalendar_id | Yes | Sub-calendar id. |
teamup_list_access_keysList access keysRead-onlyInspect
List the calendar's access keys (sharing links and user accesses) with name, role, active state and per-sub-calendar permission. Needs a key with admin permission. The secret key values are never returned (they are secrets); use the id and name to tell links apart. GET /{calendarKey}/keys.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Only this kind of access. | |
| limit | No | Results per page, 1-200 (default 50). | |
| offset | No | Number of results to skip (default 0). Pass the previous reply's next_offset. | |
| name_contains | No | Only keys whose link, user or group name matches this text. |
teamup_list_changed_eventsList changed eventsRead-onlyInspect
Events created, changed or deleted since a Unix timestamp (at most 30 days back), for syncing. A recurring event comes back once, as its series, not as occurrences. Deleted events carry delete_dt. Pass the reply's timestamp as since_timestamp next time so nothing is missed. GET /{calendarKey}/events?modifiedSince=.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | synchronize (default): events created and deleted after the timestamp are left out. monitor: they are returned too. | |
| since_timestamp | Yes | Unix timestamp in seconds, at most 30 days in the past. |
teamup_list_eventsList eventsRead-onlyInspect
List the events in a date range, optionally only on some sub-calendars. Recurring events are expanded: every occurrence in the range is returned with its own id (series id + -rid- + start). Notes come as markdown. Times use the calendar's timezone unless tz is set. GET /{calendarKey}/events.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | Timezone for the times in the reply, e.g. Europe/Berlin. Default: the calendar's timezone. | |
| end_date | No | Last day, inclusive, yyyy-mm-dd (default: start_date). Needs start_date; at most 366 days after it. | |
| start_date | No | First day, yyyy-mm-dd (default: today). | |
| subcalendar_ids | No | Only events on these sub-calendars. |
teamup_list_event_signupsList event signupsRead-onlyInspect
The people signed up for an event (name, email, id). Signups must be enabled on the event. GET /{calendarKey}/events/{id}/signups.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | Event id. |
teamup_list_subcalendarsList sub-calendarsRead-onlyInspect
List the sub-calendars (the colored lanes that events belong to, such as people, rooms or resources). A key with admin permission also sees inactive ones. GET /{calendarKey}/subcalendars.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page, 1-200 (default 50). | |
| offset | No | Number of results to skip (default 0). Pass the previous reply's next_offset. | |
| name_contains | No | Only sub-calendars whose name matches this text. | |
| include_inactive | No | Include inactive sub-calendars (default false). |
teamup_search_eventsSearch eventsRead-onlyInspect
Search events by keyword (2-100 characters) within a date range (default: today only, so always pass the range you mean). Recurring events are expanded. Paged with limit and offset. GET /{calendarKey}/events?query=.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | Timezone for the times in the reply, e.g. Europe/Berlin. Default: the calendar's timezone. | |
| limit | No | Results per page, 1-200 (default 50). | |
| query | Yes | Search text (Teamup's search syntax applies). | |
| offset | No | Number of results to skip (default 0). Pass the previous reply's next_offset. | |
| end_date | No | Last day, inclusive, yyyy-mm-dd (default: start_date). Needs start_date; at most 366 days after it. | |
| start_date | No | First day, yyyy-mm-dd (default: today). | |
| subcalendar_ids | No | Only events on these sub-calendars. |
teamup_undo_event_actionUndo event changeDestructiveIdempotentInspect
WRITE: undo a recent event creation, update or deletion with the undo_id from that call. Works for one hour only and is refused if someone else changed the event since. PUT /{calendarKey}/events/undo/{undo_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| undo_id | Yes | The undo_id returned by create, update or delete. |
teamup_update_eventUpdate eventDestructiveIdempotentInspect
WRITE: change fields of an event; fields you leave out keep their value (the event is read first and sent back with its version, so a concurrent edit is refused instead of overwritten; an event without a version is not changed). Needs modify permission. For a recurring event pass redit; use the occurrence id (123-rid-) with single or future. Attachments are not touched. The reply holds the event and an undo_id for one hour (teamup_undo_event_action). PUT /{calendarKey}/events/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | New end. | |
| who | No | ||
| notes | No | New notes, in markdown. Replaces the old notes. | |
| redit | No | Which occurrences of a recurring event: single (only this one), future (this and all later ones) or all. | |
| rrule | No | New recurrence rule; with redit all or future only. An empty string removes the recurrence (the series becomes a single event). | |
| start | No | New start (same formats as in teamup_create_event). | |
| title | No | ||
| custom | No | Custom field values to set, keyed by field id; other custom fields keep their value. | |
| all_day | No | ||
| event_id | Yes | Event id (occurrence id for one occurrence of a recurring event). | |
| location | No | ||
| signup_limit | No | ||
| signup_enabled | No | ||
| subcalendar_ids | No | Sub-calendar ids the event belongs to (from teamup_list_subcalendars). | |
| comments_enabled | No | ||
| signup_visibility | No | ||
| comments_visibility | No |
teamup_update_subcalendarUpdate sub-calendarDestructiveIdempotentInspect
WRITE: change a sub-calendar's name, color, overlap rule or active state; fields you leave out keep their value. Needs admin permission. Making a sub-calendar inactive hides it from users without admin rights. PATCH /{calendarKey}/subcalendars/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| color | No | ||
| active | No | ||
| overlap | No | ||
| subcalendar_id | Yes | Sub-calendar id. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
- First observed
teamup_create_event - First observed
teamup_create_subcalendar - First observed
teamup_delete_event - First observed
teamup_get_calendar - First observed
teamup_get_event - First observed
teamup_get_subcalendar - First observed
teamup_list_access_keys - First observed
teamup_list_changed_events - First observed
teamup_list_event_signups - First observed
teamup_list_events - First observed
teamup_list_subcalendars - First observed
teamup_search_events - First observed
teamup_undo_event_action - First observed
teamup_update_event - First observed
teamup_update_subcalendar
Related MCP Connectors
Read AddEvent calendars, events, RSVPs and subscribers; create and update calendars and events.
181Read teams, spaces, lists and tasks; create, update and comment on tasks and track time.
Read appointments, types, calendars and availability; create, cancel or reschedule bookings.
Manage YouCanBook.me bookings, booking pages, appointment types, team members and locations.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceMCP server for the Teamup Calendar API, enabling event management, calendar listing, and available slot search.-
- AlicenseAqualityCmaintenanceCalendar API purpose-built for AI agents. Exposes tools to manage agents, calendars, and events, find meeting times, run scheduling proposals, set availability rules, manage webhooks, and subscribe to iCal feeds.54134 npmApache 2.0
- FlicenseNot gradedqualityBmaintenanceEnables managing Google Calendar events, including listing calendars and creating, updating, and deleting events, with support for secondary calendars and duplicate detection.-
- AlicenseNot gradedqualityBmaintenanceEnables managing a Google calendar as a set of non-overlapping events representing one person's time.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.