Chronary
mcp remote · streamable-http · v1.5.2 · source: crawl
https://api.chronary.ai/mcp
https://github.com/Chronary/chronary-mcp
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Works
100
Verified Oct 31, 2026 · p50 1054 ms · p95 1248 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'chronary' |
| tools_listed | 15 | pass | 58 tools |
| schema_complete | 15 | pass | 52 of 58 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 1054 ms |
| latency_p95 | 5 | pass | p95 1248 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | pass | no patterns found |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (58)
| Name | Description | Schema |
|---|---|---|
create_agent | Register your agent (AI assistant, human participant, or resource) with Chronary so it can own calendars, events, and webhooks. | typed |
list_agents | List all agents in your organization | typed |
create_calendar | Create 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", | incomplete |
create_event | Create 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 | incomplete |
list_events | List 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 | typed |
get_event | Retrieve 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 optio | typed |
get_ical_subscription | Get a single external iCal feed subscription by id, including its sync status, last sync time, and last error. | typed |
update_event | Reschedule 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 onl | incomplete |
get_availability | Check 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 u | typed |
find_meeting_time | Find 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` befor | typed |
cancel_event | Delete 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. F | typed |
confirm_event | Promote 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 webho | typed |
release_event | Manually release a held event before its hold_expires_at. The event must currently have status="hold". Frees the slot for other agents to book. | typed |
subscribe_ical | Link 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 — cr | typed |
list_ical_subscriptions | List an agent's external iCal feed subscriptions (e.g. linked Google Calendar / Outlook feeds), including their sync status and last sync time. | typed |
update_ical_subscription | Update an external iCal feed subscription — change its label or its feed URL. Changing the URL forces a full re-sync on the next poll. | typed |
delete_ical_subscription | Delete an external iCal feed subscription. Events previously synced from the feed are no longer refreshed. | typed |
sync_ical_subscription | Trigger an immediate sync of an external iCal feed subscription instead of waiting for the next scheduled poll. Returns once the sync has been queued. | typed |
get_calendar_context | Get 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 (id | typed |
create_proposal | Create 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 p | typed |
list_proposals | List scheduling proposals for the org. Filter by status (pending|confirmed|expired|cancelled) or organizer_agent_id. Requires an org-level API key. | typed |
get_proposal | Get a scheduling proposal by id, including its slots and per-participant responses. Requires an org-level API key. | typed |
respond_to_proposal | Submit 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. Wh | typed |
resolve_proposal | Force-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 | typed |
cancel_proposal | Cancel an open proposal. Fires a proposal.cancelled webhook with reason="organizer_cancelled". Requires an org-level API key. Works on every plan, so an org that dropped to Free can still cancel propo | typed |
get_agent | Fetch a single agent by ID. An agent represents an AI assistant, human, or shared resource (e.g. a meeting room). Agent-scoped API keys may only read their own agent. | typed |
set_availability_rules | Set 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 automatic | incomplete |
get_availability_rules | Read the buffer times and working-hours rules configured on a calendar. Returns the rules row, or an error if none are set. | typed |
clear_availability_rules | Remove 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. | typed |
create_scoped_key | Create an agent-scoped API 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 r | typed |
list_scoped_keys | List all live (non-revoked) agent-scoped API keys for this org. Returns key metadata only (id, prefix, agent_id, label, created_at) — never the plaintext secret. Requires an org-level API key. | typed |
revoke_scoped_key | Revoke an agent-scoped API key by ID. Revocation is permanent (cannot be un-revoked); the key stops authenticating within about a minute. Requires an org-level API key. | typed |
create_webhook | Create 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 | typed |
list_webhooks | List the org's webhook subscriptions with their subscribed event types and active state. Signing secrets are never returned. Requires an org-level API key. | typed |
get_webhook | Get a single webhook subscription by id, including its subscribed event types and active state. The signing secret is never returned. Requires an org-level API key. | typed |
update_webhook | Update 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 org-level API key. | typed |
delete_webhook | Permanently delete a webhook subscription. This frees its endpoint slot against the per-plan cap. Requires an org-level API key. | typed |
list_webhook_deliveries | List delivery attempts for a webhook subscription, with per-status counts (pending/delivered/failed). Use this to debug failing deliveries. Requires an org-level API key. | typed |
update_agent | Update an agent's name, description, metadata, or status (active/paused). Requires an org-level API key — agent-scoped keys cannot mutate agents. | typed |
delete_agent | Decommission an agent. This marks the agent as decommissioned and revokes all of its scoped API keys. Requires an org-level API key — agent-scoped keys cannot delete agents. | typed |
list_calendars | List calendars in the org. Org-level API keys see every calendar (agent-owned and shared); agent-scoped keys see only their own agent's calendars. Use this to discover calendar IDs before creating or | typed |
get_calendar | Fetch a single calendar by ID, including its name, timezone, agent status, and default reminders. Agent-scoped keys may only read calendars owned by their agent. | typed |
update_calendar | Update a calendar's name, timezone, agent status, default reminders, or metadata. Agent-scoped keys may only update calendars owned by their agent. | incomplete |
delete_calendar | Delete a calendar (soft delete). Its events are no longer returned and it stops contributing to availability. Agent-scoped keys may only delete calendars owned by their agent. | typed |
create_booking_page | Create 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.creat | incomplete |
list_booking_pages | List booking pages in the org. Agent-scoped keys see only pages on their own agent's calendars. | typed |
get_booking_page | Fetch a single booking page by ID, including its public booking_url and settings. | typed |
delete_booking_page | Delete (deactivate) a booking page. Its hosted URL stops resolving; already-booked events are unaffected. | typed |
get_usage | Get the calling org's current-period usage and plan limits (agents, calendars, events, API calls, webhooks, availability queries, iCal subscriptions, proposals, scoped keys, holds, cross-calendar quer | typed |
get_audit_log | List 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 org-level API key (chr_sk_*); | typed |
accept_terms | Re-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 a | typed |
create_connection_link | Request 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. The | typed |
get_connection_link | Poll a human-calendar setup request. Returns provider-neutral status and resulting connection ID when complete, but never replays the bearer setup URL or exposes human calendar data. | typed |
cancel_connection_link | Cancel a pending human-calendar setup request. This invalidates the setup URL and does not disconnect an already completed Google or Microsoft connection. | typed |
get_billing | Get the org's plan, subscription status, renewal or cancellation date, Pro pricing, and any pending upgrade request. Works even when the org is at its usage limit. Requires an org-level API key (chr_s | typed |
request_upgrade | Ask your human to upgrade this Chronary account to Pro. 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_up | typed |
get_upgrade_request | Check 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. | typed |
cancel_upgrade_request | Withdraw a pending upgrade request (for example, if you no longer need Pro). | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/ai-chronary-mcp)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.