Chronary
REMOTE · API.CHRONARY.AI · 2 COMPONENTS
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Available components
Last scanned (19 hours ago)
Scores higher than 99% of remote servers
Reachable. Last reached 4 Nov 2026.
Category Productivity and Notes
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability86
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 6549 tokens (~111/item across 59 items; 58 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "cancel_event" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 60 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 28 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “cancel_proposal” rewrote its description, which is the text the model reads security
- New tool “cancel_upgrade_request” functional
- New tool “get_billing” functional
- New tool “get_upgrade_request” functional
- New tool “request_upgrade” functional
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 0
- Stability: 0.97 → pass security
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://api.chronary.ai/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=chronary.ai | CN=WE1,O=Google Trust Services,C=US | 4 Oct 2026 | 2 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | 8fef31ad123555d01377949c4918f922 |
| SANs: chronary.ai, api.chronary.ai, *.api.chronary.ai | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.chronary.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 1814, 3799 | 8, 8 | Verified |
| chronary.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Challenged, unverified
The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.
| Result | Challenged, unverified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
| content-security-policy | default-src 'none'; frame-ancestors 'none' |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | no-referrer |
Protected resource metadata
| Retrieved | No |
|---|---|
| Problem | no_resource_metadata |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.chronary.ai/mcp | Verified | 200 | |
| http (plaintext) | http://api.chronary.ai/mcp | HTTPS enforced | 301 | https://api.chronary.ai/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
accept_terms ~117
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 agents stuck without a console session. Pass the current tos_version (read it from GET /v1/auth/terms/current). Requires an org-level API key (chr_sk_*); agent-scoped keys cannot accept org-wide terms.
| Name | Type | Req | Description |
|---|---|---|---|
| tos_version | string | yes | The terms-of-service version to accept; must match the current version |
No output schema declared.
No examples provided.
cancel_connection_link ~48
Cancel a pending human-calendar setup request. This invalidates the setup URL and does not disconnect an already completed Google or Microsoft connection.
| Name | Type | Req | Description |
|---|---|---|---|
| connection_link_id | string | yes | Connection setup link ID |
No output schema declared.
No examples provided.
cancel_event ~192
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. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_id | string | – | 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. |
| event_id | string | yes | Event ID to cancel |
| occurrence_start | string | – | For recurring events only: ISO 8601 start of the single occurrence to cancel. The rest of the series is unaffected. |
No output schema declared.
No examples provided.
cancel_proposal ~67
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 proposals it made on Pro.
| Name | Type | Req | Description |
|---|---|---|---|
| proposal_id | string | yes | Proposal to cancel |
No output schema declared.
No examples provided.
cancel_upgrade_request ~38
Withdraw a pending upgrade request (for example, if you no longer need Pro).
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Upgrade request id from request_upgrade |
No output schema declared.
No examples provided.
clear_availability_rules ~58
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.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_id | string | yes | Calendar whose rules should be cleared |
No output schema declared.
No examples provided.
confirm_event ~70
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 webhooks fire at the scheduled times.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string | yes | Event ID of the hold to confirm |
No output schema declared.
No examples provided.
create_agent ~66
Register your agent (AI assistant, human participant, or resource) with Chronary so it can own calendars, events, and webhooks.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Optional description |
| name | string | yes | Display name for the agent |
| type | string | yes | Agent type |
No output schema declared.
No examples provided.
create_booking_page ~270
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.created webhook fires with a booking_page_id field. Set availability_constraints to restrict to weekly working hours; existing calendar events always block slots.
| Name | Type | Req | Description |
|---|---|---|---|
| active | boolean | – | Whether the page accepts bookings (default true). |
| availability_constraints | – | – | Weekly working hours, e.g. {"mon":{"start":"09:00","end":"17:00"}}. Omit/null for any time in the window. |
| buffer_minutes | integer | – | Padding before/after existing events (default 0). |
| calendar_id | string | yes | Calendar a booking resolves to (from create_calendar/list_calendars). |
| description | string | – | Optional description shown to the booker. |
| duration_minutes | integer | – | Slot length in minutes (default 30). |
| min_notice_minutes | integer | – | Minimum lead time before a bookable slot (default 0). |
| timezone | string | – | IANA timezone for display + working hours (default UTC). |
| title | string | yes | Meeting title shown on the page. |
| window_days | integer | – | How far ahead bookings are allowed (default 14). |
No output schema declared.
No examples provided.
create_calendar ~160
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", "Personal"). Org-level calendars (no agent_id) can be used as shared resources like meeting rooms.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | Agent ID to own this calendar (omit for org-level) |
| default_reminders | – | – | 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. |
| name | string | yes | Calendar name |
| timezone | string | yes | IANA timezone (e.g. America/New_York) |
No output schema declared.
No examples provided.
create_connection_link ~132
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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_id | string | yes | Chronary calendar whose owning agent will receive authorized availability |
| capabilities | array | – | Request opaque availability, plus optional opt-in event publishing permission |
| publication_policy | string | – | Desired publishing policy; a human still chooses the destination |
No output schema declared.
No examples provided.
create_event ~466
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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| all_day | boolean | – | Whether this is an all-day event |
| calendar_id | string | yes | Calendar ID to add the event to |
| description | string | – | Optional event description |
| end_time | string | yes | End time (ISO 8601) |
| hold_expires_at | string | – | Required when status="hold". ISO 8601 timestamp 30s-15min in the future. Auto-releases the hold when reached. |
| hold_priority | integer | – | Only valid with status="hold". Higher-priority overlapping holds pre-empt lower-priority ones. Defaults to 0. |
| recurrence_rule | string | – | 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… |
| reminders | – | – | 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 sy… |
| start_time | string | yes | Start time (ISO 8601) |
| status | string | – | Event status. "hold" creates a tentative reservation that auto-expires at hold_expires_at. Defaults to "confirmed". |
| title | string | yes | Event title |
No output schema declared.
No examples provided.
create_proposal ~180
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 participant responds, the system auto-resolves to the highest-scoring slot (or cancels if all decline). Requires an org-level API key. Pro plan only.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_id | string | yes | Calendar the resolved event will be created on |
| description | string | – | Longer context/agenda |
| expires_at | string | – | Auto-cancel cutoff if unresolved |
| organizer_agent_id | string | yes | Agent ID proposing the meeting |
| participant_agent_ids | array | yes | Agent IDs invited to respond |
| slots | array | yes | Candidate time slots (up to 20) |
| title | string | yes | Short description of what the meeting is about |
No output schema declared.
No examples provided.
create_scoped_key ~102
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 response — store it immediately, it cannot be retrieved later. Requires an org-level API key.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent ID this key is scoped to |
| label | string | – | Human-readable label for the key |
No output schema declared.
No examples provided.
create_webhook ~94
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 verify the HMAC-SHA256 signature on delivered payloads. Requires an org-level API key.
| Name | Type | Req | Description |
|---|---|---|---|
| events | array | yes | Event types to subscribe to |
| url | string | yes | HTTPS endpoint that will receive event deliveries |
No output schema declared.
No examples provided.
delete_agent ~59
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent ID to decommission |
No output schema declared.
No examples provided.
delete_booking_page ~49
Delete (deactivate) a booking page. Its hosted URL stops resolving; already-booked events are unaffected.
| Name | Type | Req | Description |
|---|---|---|---|
| booking_page_id | string | yes | Booking page ID to delete (bkp_...) |
No output schema declared.
No examples provided.
delete_calendar ~53
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.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_id | string | yes | Calendar ID to delete |
No output schema declared.
No examples provided.
delete_ical_subscription ~43
Delete an external iCal feed subscription. Events previously synced from the feed are no longer refreshed.
| Name | Type | Req | Description |
|---|---|---|---|
| subscription_id | string | yes | iCal subscription ID to delete |
No output schema declared.
No examples provided.
delete_webhook ~47
Permanently delete a webhook subscription. This frees its endpoint slot against the per-plan cap. Requires an org-level API key.
| Name | Type | Req | Description |
|---|---|---|---|
| webhook_id | string | yes | Webhook subscription to delete |
No output schema declared.
No examples provided.
find_meeting_time ~287
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` before using slots. Accepts `agents`/`start`/`end` or their aliases.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_ids | array | – | Alias for `agents` (matches REST/scheduling-proposal naming). |
| agents | array | – | Array of agent IDs to find common free time for. All agents must be free during the returned slots. Alias: agent_ids. |
| calendars | array | – | Additional shared calendar IDs to treat as busy |
| duration | string | – | Requested slot length (15m/30m/45m/1h/2h). Preferred over the deprecated slot_duration. Defaults to 30m. |
| end | string | – | Search range end (ISO 8601). Alias: end_time. |
| end_time | string | – | Alias for `end` (matches REST events naming). |
| include_busy | boolean | – | Include per-agent busy blocks in response |
| slot_duration | string | – | Deprecated alias for `duration` — minimum slot length. Prefer `duration`. |
| start | string | – | Search range start (ISO 8601). Alias: start_time. |
| start_time | string | – | Alias for `start` (matches REST events naming). |
No output schema declared.
No examples provided.
get_agent ~59
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent ID to fetch |
No output schema declared.
No examples provided.
get_audit_log ~175
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_*); agent-scoped keys cannot read the org-wide audit log.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | Filter by action name (e.g. event.created) |
| actor_key_prefix | string | – | Filter by the API key prefix that performed the action |
| cursor | string | – | Opaque pagination cursor from a previous response |
| from | string | – | Start of the window (ISO 8601). Silently clamped to the plan retention window if older. |
| limit | integer | – | Max results to return (default 50) |
| to | string | – | End of the window (ISO 8601) |
No output schema declared.
No examples provided.
get_availability ~234
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 using slots. Accepts `start`/`end` or the `start_time`/`end_time` aliases.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent ID to check availability for |
| duration | string | – | Requested slot length (15m/30m/45m/1h/2h). Preferred over the deprecated slot_duration. Defaults to 30m. |
| end | string | – | Range end (ISO 8601). Alias: end_time. |
| end_time | string | – | Alias for `end` (matches REST events naming). |
| include_busy | boolean | – | Include busy blocks in response |
| slot_duration | string | – | Deprecated alias for `duration` — minimum slot length. Prefer `duration`. |
| start | string | – | Range start (ISO 8601). Alias: start_time. |
| start_time | string | – | Alias for `start` (matches REST events naming). |
No output schema declared.
No examples provided.
get_availability_rules ~47
Read the buffer times and working-hours rules configured on a calendar. Returns the rules row, or an error if none are set.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_id | string | yes | Calendar to read |
No output schema declared.
No examples provided.
get_billing ~54
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_sk_*).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_booking_page ~43
Fetch a single booking page by ID, including its public booking_url and settings.
| Name | Type | Req | Description |
|---|---|---|---|
| booking_page_id | string | yes | Booking page ID to fetch (bkp_...) |
No output schema declared.
No examples provided.
get_calendar ~53
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.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_id | string | yes | Calendar ID to fetch |
No output schema declared.
No examples provided.
get_calendar_context ~89
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 (idle/working/waiting/error). Use this to answer "what is this agent doing right now?" without issuing multiple list_events queries.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_id | string | yes | Calendar ID |
No output schema declared.
No examples provided.
get_connection_link ~54
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.
| Name | Type | Req | Description |
|---|---|---|---|
| connection_link_id | string | yes | Connection setup link ID |
No output schema declared.
No examples provided.
get_event ~112
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 optional — if omitted the calendar is resolved from the event. Provide `calendar_id` to fail fast on cross-calendar typos.
| Name | Type | Req | Description |
|---|---|---|---|
| calendar_id | string | – | Calendar ID that owns the event. Optional — if omitted the calendar is resolved from the event. |
| event_id | string | yes | Event ID to retrieve |
No output schema declared.
No examples provided.
get_ical_subscription ~48
Get a single external iCal feed subscription by id, including its sync status, last sync time, and last error.
| Name | Type | Req | Description |
|---|---|---|---|
| subscription_id | string | yes | iCal subscription ID to fetch |
No output schema declared.
No examples provided.
get_proposal ~43
Get a scheduling proposal by id, including its slots and per-participant responses. Requires an org-level API key.
| Name | Type | Req | Description |
|---|---|---|---|
| proposal_id | string | yes | Proposal to fetch |
No output schema declared.
No examples provided.
get_upgrade_request ~62
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Upgrade request id from request_upgrade |
No output schema declared.
No examples provided.
get_usage ~71
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 queries). Requires an org-level API key (chr_sk_*); agent-scoped keys cannot read org-wide usage.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_webhook ~53
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.
| Name | Type | Req | Description |
|---|---|---|---|
| webhook_id | string | yes | Webhook subscription to fetch |
No output schema declared.
No examples provided.
list_agents ~56
List all agents in your organization
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max results to return |
| offset | integer | – | Pagination offset |
| status | string | – | Filter by status |
| type | string | – | Filter by agent type |
No output schema declared.
No examples provided.
list_booking_pages ~50
List booking pages in the org. Agent-scoped keys see only pages on their own agent's calendars.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max results to return |
| offset | integer | – | Pagination offset |
No output schema declared.
No examples provided.
list_calendars ~128
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 listing events.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | Filter to calendars owned by this agent. Org keys only — agent-scoped keys are always limited to their own agent and ignore this. |
| include | string | – | Pass "all" to include calendars across all agents (org keys only) |
| limit | integer | – | Max results to return |
| offset | integer | – | Pagination offset |
No output schema declared.
No examples provided.
list_events ~262
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` OR `agent_id`. Narrow with `start_after`/`start_before` (time window), `status`, and `source`.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | Agent ID to list events for across all of the agent's calendars. Provide this or calendar_id. |
| calendar_id | string | – | Calendar ID to list events from. Provide this or agent_id. |
| expand | boolean | – | 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. |
| limit | integer | – | Max results to return |
| offset | integer | – | Pagination offset |
| source | string | – | Filter by source: "internal" (created via the API) or "external_ical" (synced from an iCal subscription) |
| start_after | string | – | Only events starting after this ISO 8601 time |
| start_before | string | – | Only events starting before this ISO 8601 time |
| status | string | – | Filter by event status |
No output schema declared.
No examples provided.
list_ical_subscriptions ~87
List an agent's external iCal feed subscriptions (e.g. linked Google Calendar / Outlook feeds), including their sync status and last sync time.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent ID whose iCal subscriptions to list |
| limit | integer | – | Max results to return |
| offset | integer | – | Pagination offset |
| status | string | – | Filter by subscription status |
No output schema declared.
No examples provided.
list_proposals ~91
List scheduling proposals for the org. Filter by status (pending|confirmed|expired|cancelled) or organizer_agent_id. Requires an org-level API key.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max results (default 50) |
| offset | integer | – | Pagination offset (default 0) |
| organizer_agent_id | string | – | Filter by organizer agent |
| status | string | – | Filter by proposal status |
No output schema declared.
No examples provided.
list_scoped_keys ~58
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_webhook_deliveries ~111
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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_payload | boolean | – | Include the full event payload sent on each delivery |
| limit | integer | – | Max results to return |
| offset | integer | – | Pagination offset |
| status | string | – | Filter to a single delivery status |
| webhook_id | string | yes | Webhook subscription whose deliveries to list |
No output schema declared.
No examples provided.
list_webhooks ~57
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max results to return |
| offset | integer | – | Pagination offset |
No output schema declared.
No examples provided.
release_event ~55
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.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string | yes | Event ID of the hold to release |
No output schema declared.
No examples provided.
request_upgrade ~134
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_upgrade_request at most once a minute.
| Name | Type | Req | Description |
|---|---|---|---|
| feature | string | – | Pro feature you need, from a plan_required error |
| interval | string | – | Billing interval to propose: month ($29) or year ($290) |
| metric | string | – | Usage limit you hit, from a quota error |
| reason | string | – | Short note for your human, shown on the approval page (not emailed) |
No output schema declared.
No examples provided.
resolve_proposal ~92
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 was "decline", the proposal is cancelled instead. Use when you want to close out a proposal without waiting for every participant. Requires an org-level API key. Pro plan only.
| Name | Type | Req | Description |
|---|---|---|---|
| proposal_id | string | yes | Proposal to resolve |
No output schema declared.
No examples provided.
respond_to_proposal ~160
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. When all participants have responded the proposal auto-resolves — no separate resolve call needed in the normal flow. Requires an org-level API key. Pro plan only.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Participant agent responding |
| counter_slots | array | – | Alternative slots when response is "counter" |
| message | string | – | Optional note for the organizer |
| proposal_id | string | yes | Proposal to respond to |
| response | string | yes | Decision from this agent |
| selected_slot_id | string | – | Required when response is "accept" |
No output schema declared.
No examples provided.
revoke_scoped_key ~65
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.
| Name | Type | Req | Description |
|---|---|---|---|
| key_id | string | yes | ID of the scoped key to revoke |
No output schema declared.
No examples provided.
How do I install the Chronary MCP server?
Chronary is a hosted endpoint at https://api.chronary.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.chronary.ai
claude mcp add --transport http ai-chronary-mcp 'https://api.chronary.ai/mcp'
What is the Chronary MCP server?
Chronary is an MCP server listed in the public MCP registry as ai.chronary/mcp. Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal. This page covers its hosted endpoint (https://api.chronary.ai/mcp).
Is the Chronary MCP server safe to use?
Chronary scores 92 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Chronary MCP server expose?
Chronary exposes 58 tools: create_agent, list_agents, create_calendar, create_event, list_events, and 53 more. Their descriptions and schemas cost roughly 6,285 tokens of context every time the server is loaded.
Does the Chronary MCP server require authentication?
Yes. Chronary asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the Chronary MCP server still maintained?
Chronary is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.