Chronary
What this MCP does
Manages calendars, availability, events, scheduling proposals, booking pages, human calendar connections, and webhooks.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tos_version'], 'properties': {'tos_version': {'type': 'string', 'minLength': 1, 'description': 'The terms-of-service version to accept; must match the current version'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['connection_link_id'], 'properties': {'connection_link_id': {'type': 'string', 'format': 'starts_with', 'pattern': '^csl_.*', 'description': 'Connection setup link ID'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event_id'], 'properties': {'event_id': {'type': 'string', 'description': 'Event ID to cancel'}, 'calendar_id': {'type': 'string', 'description': 'Calendar ID that owns the event. Optional — if omitted the calendar is resolved from the event. Matches the asymmetry with confirm_event / release_event which never required this arg.'}, 'occurrence_start': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'For recurring events only: ISO 8601 start of the single occurrence to cancel. The rest of the series is unaffected.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['proposal_id'], 'properties': {'proposal_id': {'type': 'string', 'description': 'Proposal to cancel'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendar_id'], 'properties': {'calendar_id': {'type': 'string', 'description': 'Calendar whose rules should be cleared'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event_id'], 'properties': {'event_id': {'type': 'string', 'description': 'Event ID of the hold to confirm'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Display name for the agent'}, 'type': {'enum': ['ai', 'human', 'resource'], 'type': 'string', 'description': 'Agent type'}, 'description': {'type': 'string', 'description': 'Optional description'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendar_id', 'title'], 'properties': {'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Meeting title shown on the page.'}, 'active': {'type': 'boolean', 'description': 'Whether the page accepts bookings (default true).'}, 'timezone': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'IANA timezone for display + working hours (default UTC).'}, 'calendar_id': {'type': 'string', 'description': 'Calendar a booking resolves to (from create_calendar/list_calendars).'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Optional description shown to the booker.'}, 'window_days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'How far ahead bookings are allowed (default 14).'}, 'buffer_minutes': {'type': 'integer', 'maximum': 120, 'minimum': 0, 'description': 'Padding before/after existing events (default 0).'}, 'duration_minutes': {'type': 'integer', 'maximum': 480, 'minimum': 5, 'description': 'Slot length in minutes (default 30).'}, 'min_notice_minutes': {'type': 'integer', 'maximum': 40320, 'minimum': 0, 'description': 'Minimum lead time before a bookable slot (default 0).'}, 'availability_constraints': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string'}, 'start': {'type': 'string'}}}}, {'type': 'null'}], 'description': 'Weekly working hours, e.g. {"mon":{"start":"09:00","end":"17:00"}}. Omit/null for any time in the window.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'timezone'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Calendar name'}, 'agent_id': {'type': 'string', 'description': 'Agent ID to own this calendar (omit for org-level)'}, 'timezone': {'type': 'string', 'minLength': 1, 'description': 'IANA timezone (e.g. America/New_York)'}, 'default_reminders': {'anyOf': [{'type': 'array', 'items': {'type': 'integer', 'maximum': 40320, 'minimum': 1}, 'maxItems': 5}, {'type': 'null'}], 'description': "Default reminder offsets in minutes before start, inherited by events on this calendar that don't set their own. Omit or null to use the system default (10 min); [] for no reminders."}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendar_id'], 'properties': {'calendar_id': {'type': 'string', 'format': 'starts_with', 'pattern': '^cal_.*', 'description': 'Chronary calendar whose owning agent will receive authorized availability'}, 'capabilities': {'type': 'array', 'items': {'enum': ['availability', 'publishing'], 'type': 'string'}, 'default': ['availability'], 'maxItems': 2, 'minItems': 1, 'description': 'Request opaque availability, plus optional opt-in event publishing permission'}, 'publication_policy': {'enum': ['none', 'confirmed', 'confirmed_tentative'], 'type': 'string', 'default': 'none', 'description': 'Desired publishing policy; a human still chooses the destination'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendar_id', 'title', 'start_time', 'end_time'], 'properties': {'title': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Event title'}, 'status': {'enum': ['confirmed', 'tentative', 'hold'], 'type': 'string', 'description': 'Event status. "hold" creates a tentative reservation that auto-expires at hold_expires_at. Defaults to "confirmed".'}, 'all_day': {'type': 'boolean', 'default': False, 'description': 'Whether this is an all-day event'}, 'end_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'End time (ISO 8601)'}, 'reminders': {'anyOf': [{'type': 'array', 'items': {'type': 'integer', 'maximum': 40320, 'minimum': 1}, 'maxItems': 5}, {'type': 'null'}], 'description': 'Reminder offsets in minutes before start_time (e.g. [10, 1440]). Each fires an event.reminder webhook and shows as an alarm in the iCal feed. Omit or null to inherit the calendar default (then the system default of 10 min); [] for no reminders.'}, 'start_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Start time (ISO 8601)'}, 'calendar_id': {'type': 'string', 'description': 'Calendar ID to add the event to'}, 'description': {'type': 'string', 'description': 'Optional event description'}, 'hold_priority': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'Only valid with status="hold". Higher-priority overlapping holds pre-empt lower-priority ones. Defaults to 0.'}, 'hold_expires_at': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Required when status="hold". ISO 8601 timestamp 30s-15min in the future. Auto-releases the hold when reached.'}, 'recurrence_rule': {'type': 'string', 'maxLength': 256, 'description': 'Make this a recurring series (RFC 5545 RRULE subset, no "RRULE:" prefix), e.g. "FREQ=WEEKLY;BYDAY=MO,WE;COUNT=12". Supports FREQ=DAILY/WEEKLY/MONTHLY/YEARLY, INTERVAL, COUNT (max 730) or UNTIL, BYDAY (weekly list or monthly ordinal like 2TU/-1FR), BYMONTHDAY (1-28 or -1). start_time must match the rule pattern; expansion is UTC-only. Not allowed with status="hold". Free plan: max 5 recurring events, series must end within 90 days.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'organizer_agent_id', 'participant_agent_ids', 'calendar_id', 'slots'], 'properties': {'slots': {'type': 'array', 'items': {'type': 'object', 'required': ['start_time', 'end_time'], 'properties': {'weight': {'type': 'number', 'default': 1, 'maximum': 10, 'minimum': 0, 'description': 'Preference for this slot, 0–10 (higher = more preferred). Used to rank candidate slots when the proposal is resolved. Defaults to 1.'}, 'end_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Slot end time (ISO 8601), after start_time'}, 'start_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Slot start time (ISO 8601)'}, 'calendar_id': {'type': 'string', 'description': "Calendar to create the event on if this slot is chosen. Defaults to the proposal's top-level calendar_id."}}}, 'maxItems': 20, 'minItems': 1, 'description': 'Candidate time slots (up to 20)'}, 'title': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Short description of what the meeting is about'}, 'expires_at': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Auto-cancel cutoff if unresolved'}, 'calendar_id': {'type': 'string', 'description': 'Calendar the resolved event will be created on'}, 'description': {'type': 'string', 'maxLength': 5000, 'description': 'Longer context/agenda'}, 'organizer_agent_id': {'type': 'string', 'description': 'Agent ID proposing the meeting'}, 'participant_agent_ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50, 'minItems': 1, 'description': 'Agent IDs invited to respond'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_id'], 'properties': {'label': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Human-readable label for the key'}, 'agent_id': {'type': 'string', 'pattern': '^agt_', 'description': 'Agent ID this key is scoped to'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'events'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'HTTPS endpoint that will receive event deliveries'}, 'events': {'type': 'array', 'items': {'enum': ['agent.created', 'agent.updated', 'event.created', 'event.updated', 'event.deleted', 'event.started', 'event.ended', 'event.reminder', 'event.hold_created', 'event.hold_expired', 'event.hold_released', 'event.hold_confirmed', 'proposal.created', 'proposal.responded', 'proposal.confirmed', 'proposal.expired', 'proposal.cancelled', 'webhook.deactivated'], 'type': 'string'}, 'minItems': 1, 'description': 'Event types to subscribe to'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_id'], 'properties': {'agent_id': {'type': 'string', 'description': 'Agent ID to decommission'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_page_id'], 'properties': {'booking_page_id': {'type': 'string', 'description': 'Booking page ID to delete (bkp_...)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendar_id'], 'properties': {'calendar_id': {'type': 'string', 'description': 'Calendar ID to delete'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subscription_id'], 'properties': {'subscription_id': {'type': 'string', 'description': 'iCal subscription ID to delete'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhook_id'], 'properties': {'webhook_id': {'type': 'string', 'description': 'Webhook subscription to delete'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'end': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Search range end (ISO 8601). Alias: end_time.'}, 'start': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Search range start (ISO 8601). Alias: start_time.'}, 'agents': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Array of agent IDs to find common free time for. All agents must be free during the returned slots. Alias: agent_ids.'}, 'duration': {'enum': ['15m', '30m', '45m', '1h', '2h'], 'type': 'string', 'description': 'Requested slot length (15m/30m/45m/1h/2h). Preferred over the deprecated slot_duration. Defaults to 30m.'}, 'end_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Alias for `end` (matches REST events naming).'}, 'agent_ids': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Alias for `agents` (matches REST/scheduling-proposal naming).'}, 'calendars': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Additional shared calendar IDs to treat as busy'}, 'start_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Alias for `start` (matches REST events naming).'}, 'include_busy': {'type': 'boolean', 'default': False, 'description': 'Include per-agent busy blocks in response'}, 'slot_duration': {'enum': ['15m', '30m', '45m', '1h', '2h'], 'type': 'string', 'description': 'Deprecated alias for `duration` — minimum slot length. Prefer `duration`.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_id'], 'properties': {'agent_id': {'type': 'string', 'description': 'Agent ID to fetch'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'End of the window (ISO 8601)'}, 'from': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'Start of the window (ISO 8601). Silently clamped to the plan retention window if older.'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Max results to return (default 50)'}, 'action': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Filter by action name (e.g. event.created)'}, 'cursor': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': 'Opaque pagination cursor from a previous response'}, 'actor_key_prefix': {'type': 'string', 'maxLength': 32, 'minLength': 1, 'description': 'Filter by the API key prefix that performed the action'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_id'], 'properties': {'end': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Range end (ISO 8601). Alias: end_time.'}, 'start': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Range start (ISO 8601). Alias: start_time.'}, 'agent_id': {'type': 'string', 'description': 'Agent ID to check availability for'}, 'duration': {'enum': ['15m', '30m', '45m', '1h', '2h'], 'type': 'string', 'description': 'Requested slot length (15m/30m/45m/1h/2h). Preferred over the deprecated slot_duration. Defaults to 30m.'}, 'end_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Alias for `end` (matches REST events naming).'}, 'start_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Alias for `start` (matches REST events naming).'}, 'include_busy': {'type': 'boolean', 'default': False, 'description': 'Include busy blocks in response'}, 'slot_duration': {'enum': ['15m', '30m', '45m', '1h', '2h'], 'type': 'string', 'description': 'Deprecated alias for `duration` — minimum slot length. Prefer `duration`.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendar_id'], 'properties': {'calendar_id': {'type': 'string', 'description': 'Calendar to read'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['booking_page_id'], 'properties': {'booking_page_id': {'type': 'string', 'description': 'Booking page ID to fetch (bkp_...)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendar_id'], 'properties': {'calendar_id': {'type': 'string', 'description': 'Calendar ID to fetch'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendar_id'], 'properties': {'calendar_id': {'type': 'string', 'description': 'Calendar ID'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['connection_link_id'], 'properties': {'connection_link_id': {'type': 'string', 'format': 'starts_with', 'pattern': '^csl_.*', 'description': 'Connection setup link ID'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event_id'], 'properties': {'event_id': {'type': 'string', 'description': 'Event ID to retrieve'}, 'calendar_id': {'type': 'string', 'description': 'Calendar ID that owns the event. Optional — if omitted the calendar is resolved from the event.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subscription_id'], 'properties': {'subscription_id': {'type': 'string', 'description': 'iCal subscription ID to fetch'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['proposal_id'], 'properties': {'proposal_id': {'type': 'string', 'description': 'Proposal to fetch'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhook_id'], 'properties': {'webhook_id': {'type': 'string', 'description': 'Webhook subscription to fetch'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'type': {'enum': ['ai', 'human', 'resource'], 'type': 'string', 'description': 'Filter by agent type'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max results to return'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset'}, 'status': {'enum': ['active', 'paused', 'decommissioned'], 'type': 'string', 'description': 'Filter by status'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max results to return'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max results to return'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset'}, 'include': {'enum': ['all'], 'type': 'string', 'description': 'Pass "all" to include calendars across all agents (org keys only)'}, 'agent_id': {'type': 'string', 'description': 'Filter to calendars owned by this agent. Org keys only — agent-scoped keys are always limited to their own agent and ignore this.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max results to return'}, 'expand': {'type': 'boolean', 'default': False, 'description': 'Expand recurring series into individual occurrence instances within the window. Requires both start_after and start_before (max 366 days apart). Instances carry recurringEventId + originalStartTime.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset'}, 'source': {'enum': ['internal', 'external_ical'], 'type': 'string', 'description': 'Filter by source: "internal" (created via the API) or "external_ical" (synced from an iCal subscription)'}, 'status': {'enum': ['confirmed', 'tentative', 'cancelled', 'hold'], 'type': 'string', 'description': 'Filter by event status'}, 'agent_id': {'type': 'string', 'description': "Agent ID to list events for across all of the agent's calendars. Provide this or calendar_id."}, 'calendar_id': {'type': 'string', 'description': 'Calendar ID to list events from. Provide this or agent_id.'}, 'start_after': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Only events starting after this ISO 8601 time'}, 'start_before': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Only events starting before this ISO 8601 time'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_id'], 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max results to return'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset'}, 'status': {'enum': ['active', 'error', 'paused'], 'type': 'string', 'description': 'Filter by subscription status'}, 'agent_id': {'type': 'string', 'description': 'Agent ID whose iCal subscriptions to list'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Max results (default 50)'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset (default 0)'}, 'status': {'enum': ['pending', 'confirmed', 'expired', 'cancelled'], 'type': 'string', 'description': 'Filter by proposal status'}, 'organizer_agent_id': {'type': 'string', 'description': 'Filter by organizer agent'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhook_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results to return'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset'}, 'status': {'enum': ['pending', 'delivered', 'failed'], 'type': 'string', 'description': 'Filter to a single delivery status'}, 'webhook_id': {'type': 'string', 'description': 'Webhook subscription whose deliveries to list'}, 'include_payload': {'type': 'boolean', 'description': 'Include the full event payload sent on each delivery'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Max results to return'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Pagination offset'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event_id'], 'properties': {'event_id': {'type': 'string', 'description': 'Event ID of the hold to release'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['proposal_id'], 'properties': {'proposal_id': {'type': 'string', 'description': 'Proposal to resolve'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['proposal_id', 'agent_id', 'response'], 'properties': {'message': {'type': 'string', 'maxLength': 2000, 'description': 'Optional note for the organizer'}, 'agent_id': {'type': 'string', 'description': 'Participant agent responding'}, 'response': {'enum': ['accept', 'decline', 'counter'], 'type': 'string', 'description': 'Decision from this agent'}, 'proposal_id': {'type': 'string', 'description': 'Proposal to respond to'}, 'counter_slots': {'type': 'array', 'items': {'type': 'object', 'required': ['start_time', 'end_time'], 'properties': {'weight': {'type': 'number', 'default': 1, 'maximum': 10, 'minimum': 0, 'description': 'Preference for this slot, 0–10 (higher = more preferred). Used to rank candidate slots when the proposal is resolved. Defaults to 1.'}, 'end_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Slot end time (ISO 8601), after start_time'}, 'start_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'Slot start time (ISO 8601)'}, 'calendar_id': {'type': 'string', 'description': "Calendar to create the event on if this slot is chosen. Defaults to the proposal's top-level calendar_id."}}}, 'maxItems': 20, 'description': 'Alternative slots when response is "counter"'}, 'selected_slot_id': {'type': 'string', 'description': 'Required when response is "accept"'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key_id'], 'properties': {'key_id': {'type': 'string', 'description': 'ID of the scoped key to revoke'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendar_id'], 'properties': {'timezone': {'type': 'string', 'default': 'UTC', 'maxLength': 64, 'minLength': 1, 'description': 'IANA timezone used to interpret working_hours (e.g. America/New_York)'}, 'calendar_id': {'type': 'string', 'description': 'Calendar to configure'}, 'working_hours': {'anyOf': [{'type': 'object', 'properties': {'fri': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'End of the working window, HH:MM 24-hour, after start (e.g. "17:00")'}, 'start': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'Start of the working window, HH:MM 24-hour, in the rules timezone (e.g. "09:00")'}}, 'description': "A single day's working hours window"}, 'mon': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'End of the working window, HH:MM 24-hour, after start (e.g. "17:00")'}, 'start': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'Start of the working window, HH:MM 24-hour, in the rules timezone (e.g. "09:00")'}}, 'description': "A single day's working hours window"}, 'sat': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'End of the working window, HH:MM 24-hour, after start (e.g. "17:00")'}, 'start': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'Start of the working window, HH:MM 24-hour, in the rules timezone (e.g. "09:00")'}}, 'description': "A single day's working hours window"}, 'sun': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'End of the working window, HH:MM 24-hour, after start (e.g. "17:00")'}, 'start': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'Start of the working window, HH:MM 24-hour, in the rules timezone (e.g. "09:00")'}}, 'description': "A single day's working hours window"}, 'thu': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'End of the working window, HH:MM 24-hour, after start (e.g. "17:00")'}, 'start': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'Start of the working window, HH:MM 24-hour, in the rules timezone (e.g. "09:00")'}}, 'description': "A single day's working hours window"}, 'tue': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'End of the working window, HH:MM 24-hour, after start (e.g. "17:00")'}, 'start': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'Start of the working window, HH:MM 24-hour, in the rules timezone (e.g. "09:00")'}}, 'description': "A single day's working hours window"}, 'wed': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'End of the working window, HH:MM 24-hour, after start (e.g. "17:00")'}, 'start': {'type': 'string', 'pattern': '^([01]\\d|2[0-3]):[0-5]\\d$', 'description': 'Start of the working window, HH:MM 24-hour, in the rules timezone (e.g. "09:00")'}}, 'description': "A single day's working hours window"}}}, {'type': 'null'}], 'default': None, 'description': "Per-day working hours map in the calendar's timezone; omit keys for off-days. Pass null to remove any working-hours constraint."}, 'buffer_after_minutes': {'type': 'integer', 'default': 0, 'maximum': 120, 'minimum': 0, 'description': 'Minutes of buffer after each event (0–120)'}, 'buffer_before_minutes': {'type': 'integer', 'default': 0, 'maximum': 120, 'minimum': 0, 'description': 'Minutes of buffer before each event (0–120)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_id', 'calendar_id', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'HTTPS URL of the iCal feed (.ics) to subscribe to'}, 'label': {'type': 'string', 'description': 'Optional label for this subscription'}, 'agent_id': {'type': 'string', 'description': 'Agent ID that will own this subscription'}, 'calendar_id': {'type': 'string', 'description': 'Calendar ID to sync external events into'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subscription_id'], 'properties': {'subscription_id': {'type': 'string', 'description': 'iCal subscription ID to sync'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_id'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'New display name'}, 'status': {'enum': ['active', 'paused'], 'type': 'string', 'description': 'Operational status'}, 'agent_id': {'type': 'string', 'description': 'Agent ID to update'}, 'metadata': {'type': 'object', 'description': 'Arbitrary metadata (max 16KB)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'description': {'type': ['string', 'null'], 'description': 'New description (null to clear)'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendar_id'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'New calendar name'}, 'metadata': {'type': 'object', 'description': 'Arbitrary metadata (max 16KB)', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'timezone': {'type': 'string', 'minLength': 1, 'description': 'New IANA timezone (e.g. America/New_York)'}, 'calendar_id': {'type': 'string', 'description': 'Calendar ID to update'}, 'agent_status': {'enum': ['idle', 'working', 'waiting', 'error'], 'type': 'string', 'description': "Owning agent's status"}, 'default_reminders': {'anyOf': [{'type': 'array', 'items': {'type': 'integer', 'maximum': 40320, 'minimum': 1}, 'maxItems': 5}, {'type': 'null'}], 'description': 'Default reminder offsets in minutes; null for system default, [] for none'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event_id'], 'properties': {'title': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'New event title'}, 'status': {'enum': ['confirmed', 'tentative', 'cancelled'], 'type': 'string', 'description': 'New event status'}, 'all_day': {'type': 'boolean', 'description': 'Whether this is an all-day event'}, 'end_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'New end time (ISO 8601)'}, 'event_id': {'type': 'string', 'description': 'Event ID to update'}, 'metadata': {'type': 'object', 'description': 'Replacement metadata object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'reminders': {'anyOf': [{'type': 'array', 'items': {'type': 'integer', 'maximum': 40320, 'minimum': 1}, 'maxItems': 5}, {'type': 'null'}], 'description': 'Reminder offsets in minutes before start_time. Omit to leave unchanged, null to inherit the calendar default, [] for no reminders.'}, 'start_time': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$', 'description': 'New start time (ISO 8601)'}, 'calendar_id': {'type': 'string', 'description': 'Calendar ID that owns the event. Optional — if omitted the calendar is resolved from the event.'}, 'description': {'type': ['string', 'null'], 'description': 'New description, or null to clear it'}, 'recurrence_rule': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'description': 'Set/change the recurring series rule (RFC 5545 RRULE subset, full-series semantics), or null to make the event a one-off. Changing the rule or start_time resets cancelled occurrences.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subscription_id'], 'properties': {'url': {'type': 'string', 'format': 'starts_with', 'pattern': '^https:\\/\\/.*', 'description': 'New HTTPS URL of the iCal feed (.ics)'}, 'label': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'New label for this subscription'}, 'subscription_id': {'type': 'string', 'description': 'iCal subscription ID to update'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhook_id'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'New HTTPS delivery endpoint'}, 'active': {'type': 'boolean', 'description': 'Set false to pause deliveries, true to resume'}, 'events': {'type': 'array', 'items': {'enum': ['agent.created', 'agent.updated', 'event.created', 'event.updated', 'event.deleted', 'event.started', 'event.ended', 'event.reminder', 'event.hold_created', 'event.hold_expired', 'event.hold_released', 'event.hold_confirmed', 'proposal.created', 'proposal.responded', 'proposal.confirmed', 'proposal.expired', 'proposal.cancelled', 'webhook.deactivated'], 'type': 'string'}, 'minItems': 1, 'description': 'Replacement set of event types to subscribe to'}, 'webhook_id': {'type': 'string', 'description': 'Webhook subscription to update'}}}
Recent tool changes
Similar MCP servers
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
TaScan
Manages field-service projects, workers, task lists, subtasks, dispatch, geofenced work zones, inspections, remediation workflows…
Tango
Manages shared work between humans and agents through tasks, leases, handoffs, approvals, artifacts, comments, integrations, prog…
AIOProductOS MCP
Combines customer records, support conversations, feedback, product analytics, roadmaps, tasks, experiments, releases, and retent…
agendaforge
Manages events, agendas, sessions, speakers, attendees, sponsors, forms, contacts, email templates, approvals, and organizer work…
Refine Job Search
Tracks job applications, interviews, offers, recruiter email, and company openings, with Gmail synchronization and workflow actio…