Skip to main content

Chronary

ai.chronary/mcpVersion 1.6.2

Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.

Status

Responds620 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 13:27 UTC
Latency
620 ms
Remotes responding
1 of 1
Sign-in
API key
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://api.chronary.ai/mcpResponds620 ms
No sign-in

Claude Code

claude mcp add --transport http chronary https://api.chronary.ai/mcp --header 'Authorization: Bearer <YOUR_TOKEN>'

Replace <YOUR_TOKEN> before running.

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: chronary
Remote MCP server URL: https://api.chronary.ai/mcp
This server expects the header Authorization.

Cursor

{
  "mcpServers": {
    "chronary": {
      "url": "https://api.chronary.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

Replace <YOUR_TOKEN> before running.

VS Code

code --add-mcp '{"name":"chronary","type":"http","url":"https://api.chronary.ai/mcp","headers":{"Authorization":"Bearer <YOUR_TOKEN>"}}'

Replace <YOUR_TOKEN> before running.

Streamable HTTP
npm: @chronary/mcp 1.6.2
Package only

npm (npx)

claude mcp add chronary -e 'CHRONARY_API_KEY=<YOUR_CHRONARY_API_KEY>' -- npx -y @chronary/mcp@1.6.2

Replace <YOUR_CHRONARY_API_KEY> before running.

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

65 tools

Tools of Chronary
Read-only
Idempotent
Open world
accept_termsRe-accept the current Chronary terms of service on behalf of the calling org. Use this when responses carry the Chronary-Terms-Upgrade-Required header — a material ToS bump otherwise leaves MCP-only agents stuck without a console session. Pass the current tos_version (read it from GET /v1/auth/terms/current). Requires an Organization key (chr_sk_*); Agent keys cannot accept org-wide terms.NoNoYesNo
cancel_connection_linkCancel a pending human-calendar setup request. This invalidates the setup URL and does not disconnect a Connection that was already completed; the human manages Connections under Human calendars in the Chronary console.YesNoYesNo
cancel_eventDelete or cancel an event from a calendar. Use this to remove, cancel, or delete any scheduled event or appointment. The event is marked cancelled and excluded from future availability calculations. For a recurring series, pass `occurrence_start` to cancel just that one occurrence (the series continues); omit it to cancel the whole series. `calendar_id` is optional — if omitted the calendar is looked up from the event. Provide `calendar_id` to fail fast on cross-calendar typos.YesNoYesNo
cancel_proposalCancel an open proposal. Fires a proposal.cancelled webhook with reason="organizer_cancelled". Requires an Organization key. Works on every plan, so an org that dropped to Free can still cancel proposals it made on Pro.YesNoYesNo
cancel_upgrade_requestWithdraw a pending upgrade request (for example, if you no longer need the upgrade).NoNoYesNo
clear_availability_rulesRemove the availability rules from a calendar, reverting to the default (no buffers, no working-hours mask). Returns the deleted row, or an error if none were set.YesNoYesNo
confirm_eventPromote a held event to a confirmed booking. The event must currently have status="hold" and its hold_expires_at must not have passed. After confirmation, event.started and event.ended lifecycle webhooks fire at the scheduled times.NoNoYesNo
create_agentRegister your agent (AI assistant, human participant, or resource) with Chronary so it can own calendars, events, and webhooks.NoNoNoNo
create_booking_pageCreate a public booking page (a hosted scheduling link) for a calendar. Returns a booking_url to send to a human; when they pick a slot, a confirmed event is created on the calendar and an event.created webhook fires with a booking_page_id field. Set availability_constraints to restrict to weekly working hours; existing calendar events always block slots.NoNoNoNo
create_calendarCreate a calendar to hold events and track availability. Calendars are required before creating events — call this first when setting up a new agent. An agent can have multiple calendars (e.g. "Work", "Personal"). Org-level calendars (no agent_id) can be used as shared resources like meeting rooms.NoNoNoNo
create_connection_linkRequest human setup of Google Calendar or Microsoft Outlook for a Chronary calendar. Give setup_url to a human; the agent never receives OAuth credentials, provider calendar names, or event data. When the human finishes, the linked account becomes a Connection, listed under Human calendars in the Chronary console. The secret URL is returned only on first creation. If reused=true and setup_url is null, retain the original URL or cancel this link and create a replacement.NoNoNoYes
create_eventCreate a booking, appointment, meeting, hold, or any scheduled event on a calendar. The calendar_id comes from create_calendar or list_events. Once created, this event blocks the agent's availability during that time and appears in availability queries. Use status="hold" with hold_expires_at to tentatively reserve a slot that auto-releases on TTL.NoNoNoNo
create_proposalCreate a scheduling proposal — send a set of candidate time slots to one or more participant agents so they can accept, decline, or counter-propose. The organizer agent owns the proposal; once every participant responds, the system auto-resolves to the highest-scoring slot (or cancels if all decline). Requires an Organization key. Pro plan only.NoNoNoNo
create_scoped_keyCreate an Agent key (chr_ak_*) that can only act on behalf of a single agent. Use this to self-provision or rotate per-agent credentials. The plaintext key is returned exactly once in the response — store it immediately, it cannot be retrieved later. Requires an Organization key.NoNoNoNo
create_webhookCreate a webhook subscription so the org receives HTTP POST notifications when events occur (e.g. event.created, proposal.confirmed). The signing secret is returned ONCE in this response — store it to verify the HMAC-SHA256 signature on delivered payloads. Requires an Organization key.NoNoNoYes
delete_agentDecommission an agent. This marks the agent as decommissioned and revokes all of its Agent keys. Requires an Organization key — Agent keys cannot delete agents.YesNoYesNo
delete_booking_pageDelete (deactivate) a booking page. Its hosted URL stops resolving; already-booked events are unaffected.YesNoYesNo
delete_calendarDelete a calendar (soft delete). Its events are no longer returned and it stops contributing to availability. Agent keys may only delete calendars owned by their agent.YesNoYesNo
delete_ical_subscriptionDelete an external iCal feed subscription. Events previously synced from the feed are no longer refreshed.YesNoYesNo
delete_webhookPermanently delete a webhook subscription. This frees its endpoint slot against the per-plan cap. Requires an Organization key.YesNoYesNo
find_meeting_timeFind slots when multiple agents are free across Chronary calendars and any human calendars authorized for each agent. This tool is fail-closed: always inspect `availability_state` and `warnings` before using slots. Accepts `agents`/`start`/`end` or their aliases.NoYesYesNo
get_agentFetch a single agent by ID. An agent represents an AI assistant, human, or shared resource (e.g. a meeting room). Agent keys may only read their own agent.NoYesYesNo
get_audit_logList audit-log entries for the calling org — mutating operations and auth-lifecycle events, newest first. Results are clamped to the plan's retention window. Requires an Organization key (chr_sk_*); Agent keys cannot read the org-wide audit log.NoYesYesNo
get_availabilityCheck when a single agent is free across its Chronary calendars and any human calendars authorized for that agent. This tool is fail-closed: always inspect `availability_state` and `warnings` before using slots. Accepts `start`/`end` or the `start_time`/`end_time` aliases.NoYesYesNo
get_availability_rulesRead the buffer times and working-hours rules configured on a calendar. Returns the rules row, or an error if none are set.NoYesYesNo
get_billingGet the org's plan, subscription status, renewal or cancellation date, any scheduled plan switch, upgrade options with pricing, and any pending upgrade request. Works even when the org is at its usage limit. Requires an Organization key (chr_sk_*).NoYesYesNo
get_booking_pageFetch a single booking page by ID, including its public booking_url and settings.NoYesYesNo
get_calendarFetch a single calendar by ID, including its name, timezone, agent status, and default reminders. Agent keys may only read calendars owned by their agent.NoYesYesNo
get_calendar_contextGet a calendar's temporal context in a single call: the current event (if one is happening now), the next upcoming event, recent past events, a short upcoming window, and the owning agent's status (idle/working/waiting/error). Use this to answer "what is this agent doing right now?" without issuing multiple list_events queries.NoYesYesNo
get_connection_linkPoll a human-calendar setup request. Returns provider-neutral status and, when complete, the ID of the resulting Connection (the human sees it under Human calendars in the Chronary console), but never replays the bearer setup URL or exposes human calendar data.NoYesYesNo
get_eventRetrieve a single event by ID, including its title, times, status, location, reminders, and metadata. Works for both internally created events and externally synced iCal events. `calendar_id` is optional — if omitted the calendar is resolved from the event. Provide `calendar_id` to fail fast on cross-calendar typos.NoYesYesNo
get_ical_subscriptionGet a single external iCal feed subscription by id, including its sync status, last sync time, and last error.NoYesYesNo
get_proposalGet a scheduling proposal by id, including its slots and per-participant responses. Requires an Organization key.NoYesYesNo
get_upgrade_requestCheck an upgrade request (pending, completed, declined, canceled, expired). Poll at most once a minute; after completed, wait ~15 seconds before retrying the call that hit the plan limit.NoYesYesNo
get_usageGet the calling org's current-period usage and plan limits (agents, calendars, events, API calls, webhook deliveries, webhook endpoints, availability queries, iCal subscriptions, proposals, recurring events, booking pages, scoped keys, holds, cross-calendar queries) and when the monthly counters reset (resets_at, 00:00 UTC on the 1st). Requires an Organization key (chr_sk_*); Agent keys cannot read org-wide usage.NoYesYesNo
get_usage_historyGet the calling org's monthly usage totals for the last 1-12 UTC calendar months (default 6), oldest first, ending with the current partial month. Each month lists every monthly counter (api_calls, events, webhook_deliveries, availability_queries, proposals, holds_created, holds_confirmed, holds_expired, cross_calendar_queries); limits are the current plan's (null = unlimited). Requires an Organization key (chr_sk_*); Agent keys cannot read org-wide usage.NoYesYesNo
get_webhookGet a single webhook subscription by id, including its subscribed event types and active state. The signing secret is never returned. Requires an Organization key.NoYesYesNo
get_webhook_deliveryGet one webhook delivery with its payload and every attempt, oldest first: HTTP status, duration, the first 2 KB of the response body and an error code (timeout, connection_error, tls_error, redirect_not_followed, unsafe_destination_url, non_2xx). Use this to find out why a delivery failed. Requires an Organization key.NoYesYesNo
list_agentsList all agents in your organizationNoYesYesNo
list_booking_pagesList booking pages in the org. Agent keys see only pages on their own agent's calendars.NoYesYesNo
list_calendarsList calendars in the org. Organization keys see every calendar (agent-owned and shared); Agent keys see only their own agent's calendars. Use this to discover calendar IDs before creating or listing events.NoYesYesNo
list_eventsList events on a calendar or across an agent's calendars, including internally created events and externally synced events from iCal subscriptions (e.g. Google Calendar, Outlook). Provide `calendar_id` OR `agent_id`. Narrow with `start_after`/`start_before` (time window), `status`, and `source`.NoYesYesNo
list_ical_subscriptionsList an agent's external iCal feed subscriptions (e.g. linked Google Calendar / Outlook feeds), including their sync status and last sync time.NoYesYesNo
list_org_eventsList events across all of the organization's calendars in one call, ordered by start time (an Agent key sees only its agent's calendars). Narrow with `calendar_ids`, `agent_id`, a `start_after`/`start_before` window, `status` and `source`. `q` searches titles (case-insensitive) and needs both window bounds at most 31 days apart. Page with the returned next_cursor. Use list_events for one calendar.NoYesYesNo
list_proposalsList scheduling proposals for the org. Filter by status (pending|resolving|confirmed|expired|cancelled; `resolving` is the brief state while a resolve creates the event) or organizer_agent_id. Requires an Organization key.NoYesYesNo
list_scoped_keysList all live (non-revoked) Agent keys for this org. Returns key metadata only (id, key_prefix, agent_id, label, created_at, last_used_at, last_used_user_agent, created_via, created_by_key_prefix) — never the plaintext secret. Requires an Organization key.NoYesYesNo
list_webhook_deliveriesList delivery attempts for a webhook subscription, newest first, with per-status counts (pending/delivered/failed/dropped). Filter by status, event type, creation time, delivery id or test flag, and page with next_cursor. `dropped` deliveries were stopped by the Free plan monthly limit. Use this to debug failing deliveries. Requires an Organization key.NoYesYesNo
list_webhooksList the org's webhook subscriptions with their subscribed event types and active state. Signing secrets are never returned. Requires an Organization key.NoYesYesNo
pause_ical_subscriptionPause an external iCal feed subscription: scheduled polls skip it and manual syncs are refused until it is resumed. Busy blocks already imported stay. Pausing a paused feed changes nothing. Returns the subscription.NoNoYesNo
release_eventManually release a held event before its hold_expires_at. The event must currently have status="hold". Frees the slot for other agents to book.YesNoYesNo
replay_webhook_deliverySend a failed or dropped webhook delivery again, as a new delivery with a new delivery_id. The stored payload goes out unchanged (same event id), signed with the endpoint's current secret, with an X-Chronary-Replay-Of header naming the original delivery. Only failed or dropped deliveries that are not test events can be replayed, the endpoint must be active, and the payload must still be stored (30 days). The replay follows the normal retry schedule and counts toward the monthly delivery quota. Poll get_webhook_delivery with the returned delivery_id for the result. Limited to 30 per minute. Requires a Developer or Pro plan and an Organization key.NoNoNoYes
request_upgradeAsk your human to upgrade this Chronary account to the next plan up. Returns approval_url — give it to your human; only a human can pay. If reused=true a request is already pending — do not call again; poll get_upgrade_request at most once a minute. The link opens the Billing page in the Chronary console.NoNoYesNo
resolve_proposalForce-resolve an open proposal using responses collected so far. Picks the highest-scoring slot among those accepted by the most participants and creates a confirmed calendar event. If every response was "decline", the proposal is cancelled instead. Use when you want to close out a proposal without waiting for every participant. Requires an Organization key. Pro plan only.NoNoYesNo
respond_to_proposalSubmit a response (accept / decline / counter) on behalf of one participant agent to an open proposal. An "accept" requires the slot id from the proposal; a "counter" can suggest alternative slots. When all participants have responded the proposal auto-resolves — no separate resolve call needed in the normal flow. Requires an Organization key. Pro plan only.NoNoNoNo
resume_ical_subscriptionResume a paused or failing external iCal feed subscription: it returns to scheduled polling and its last_error is cleared. Resuming an active feed changes nothing. Returns the subscription.NoNoYesNo
revoke_scoped_keyRevoke an Agent key by ID. Revocation is permanent (cannot be un-revoked); the key stops authenticating within about a minute. Requires an Organization key.YesNoYesNo
send_test_webhookSend a signed sample payload of one event type to a webhook endpoint, to check that it receives and verifies deliveries. The delivery is marked is_test, carries the X-Chronary-Test: 1 header, makes one attempt, does not count toward the monthly delivery quota and is sent even when the endpoint is paused or disabled. The endpoint must subscribe to the event type. Poll get_webhook_delivery with the returned delivery_id for the result. Limited to 10 per minute. Requires an Organization key.NoNoNoYes
set_availability_rulesSet or replace the availability rules on a calendar — buffer times before/after events and optional per-day working hours. When these rules are set, every availability query on this calendar automatically applies them (busy-block expansion for buffers, masking outside working hours). Upsert: overwrites any existing rules.NoNoYesNo
subscribe_icalLink an external iCal feed (e.g. a human's Google Calendar) to an agent's calendar so external events appear in availability calculations. The target calendar must be owned by the specified agent — create the calendar with that agent_id first (org-level calendars without an agent_id cannot host external iCal subscriptions; create a dedicated per-agent calendar for sync targets).NoNoNoYes
sync_ical_subscriptionStart an immediate fetch of an external iCal feed instead of waiting for the next scheduled poll. Returns {"status":"syncing"} as soon as the fetch has started; call get_ical_subscription a few seconds later to read last_synced_at and last_error. A paused feed must be resumed first; one manual sync per feed per minute on paid plans, per 15 minutes on Free.NoNoYesYes
update_agentUpdate an agent's name, description, metadata, or status (active/paused). Requires an Organization key — Agent keys cannot mutate agents.NoNoYesNo
update_calendarUpdate a calendar's name, timezone, agent status, default reminders, or metadata. Agent keys may only update calendars owned by their agent.NoNoYesNo
update_eventReschedule or edit an event — change its title, description, start/end times, location, status, reminders, or metadata. Use this to move an appointment to a new time or update its details. Provide only the fields you want to change. Holds cannot be edited via this tool (use confirm_event / release_event). External iCal events are read-only. `calendar_id` is optional — if omitted it is resolved from the event.NoNoYesNo
update_ical_subscriptionUpdate an external iCal feed subscription — change its label or its feed URL. Changing the URL forces a full re-sync on the next poll.NoNoYesYes
update_webhookUpdate a webhook subscription — change its delivery URL, the set of subscribed event types, or pause/resume it via active. At least one field must be supplied. Requires an Organization key.YesNoYesYes

Details

Registry status
Active
Published
Nov 13, 2026
Updated
Nov 13, 2026
Categories (suggested)
Developer toolsCommunicationSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing