A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API
Chronary is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Calendar API for AI agents — events, availability, scheduling, webhooks, and iCal feeds.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http api-chronary-ai-chronary-mcp https://api.chronary.ai/mcp
# 2 — ask your agent for something these tools do
# create_agent, list_agents, create_calendar and 51 more
Chronary costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http api-chronary-ai-chronary-mcp https://api.chronary.ai/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
54 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Register your agent (AI assistant, human participant, or resource) with Chronary so it can own calendars, events, and webhooks.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Display name for the agent |
| type | string | yes | Agent type |
| description | string | no | Optional description |
List all agents in your organization
| Parameter | Type | Required | Notes |
|---|---|---|---|
| type | string | no | Filter by agent type |
| status | string | no | Filter by status |
| limit | integer | no | Max results to return |
| offset | integer | no | Pagination offset |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Calendar name |
| agent_id | string | no | Agent ID to own this calendar (omit for org-level) |
| timezone | string | yes | IANA timezone (e.g. America/New_York) |
| default_reminders | no | 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. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | yes | Calendar ID to add the event to |
| title | string | yes | Event title |
| start_time | string | yes | Start time (ISO 8601) |
| end_time | string | yes | End time (ISO 8601) |
| description | string | no | Optional event description |
| all_day | boolean | no | Whether this is an all-day event |
| status | string | no | Event status. "hold" creates a tentative reservation that auto-expires at hold_expires_at. Defaults to "confirmed". |
| reminders | no | 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 sys | |
| hold_expires_at | string | no | Required when status="hold". ISO 8601 timestamp 30s-15min in the future. Auto-releases the hold when reached. |
| hold_priority | integer | no | Only valid with status="hold". Higher-priority overlapping holds pre-empt lower-priority ones. Defaults to 0. |
| recurrence_rule | string | no | 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 |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | no | Calendar ID to list events from. Provide this or agent_id. |
| agent_id | string | no | Agent ID to list events for across all of the agent's calendars. Provide this or calendar_id. |
| start_after | string | no | Only events starting after this ISO 8601 time |
| start_before | string | no | Only events starting before this ISO 8601 time |
| status | string | no | Filter by event status |
| source | string | no | Filter by source: "internal" (created via the API) or "external_ical" (synced from an iCal subscription) |
| limit | integer | no | Max results to return |
| offset | integer | no | Pagination offset |
| expand | boolean | no | 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. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_id | string | yes | Event ID to retrieve |
| calendar_id | string | no | Calendar ID that owns the event. Optional — if omitted the calendar is resolved from the 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 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 fro
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_id | string | yes | Event ID to update |
| calendar_id | string | no | Calendar ID that owns the event. Optional — if omitted the calendar is resolved from the event. |
| title | string | no | New event title |
| description | no | New description, or null to clear it | |
| start_time | string | no | New start time (ISO 8601) |
| end_time | string | no | New end time (ISO 8601) |
| all_day | boolean | no | Whether this is an all-day event |
| status | string | no | New event status |
| metadata | object | no | Replacement metadata object |
| reminders | no | Reminder offsets in minutes before start_time. Omit to leave unchanged, null to inherit the calendar default, [] for no reminders. | |
| recurrence_rule | no | 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. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | yes | Agent ID to check availability for |
| start | string | no | Range start (ISO 8601). Alias: start_time. |
| end | string | no | Range end (ISO 8601). Alias: end_time. |
| start_time | string | no | Alias for start (matches REST events naming). |
| end_time | string | no | Alias for end (matches REST events naming). |
| duration | string | no | Requested slot length (15m/30m/45m/1h/2h). Preferred over the deprecated slot_duration. Defaults to 30m. |
| slot_duration | string | no | Deprecated alias for duration — minimum slot length. Prefer duration. |
| include_busy | boolean | no | Include busy blocks in response |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agents | array | no | Array of agent IDs to find common free time for. All agents must be free during the returned slots. Alias: agent_ids. |
| agent_ids | array | no | Alias for agents (matches REST/scheduling-proposal naming). |
| start | string | no | Search range start (ISO 8601). Alias: start_time. |
| end | string | no | Search range end (ISO 8601). Alias: end_time. |
| start_time | string | no | Alias for start (matches REST events naming). |
| end_time | string | no | Alias for end (matches REST events naming). |
| duration | string | no | Requested slot length (15m/30m/45m/1h/2h). Preferred over the deprecated slot_duration. Defaults to 30m. |
| slot_duration | string | no | Deprecated alias for duration — minimum slot length. Prefer duration. |
| calendars | array | no | Additional shared calendar IDs to treat as busy |
| include_busy | boolean | no | Include per-agent busy blocks in response |
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 loo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_id | string | yes | Event ID to cancel |
| calendar_id | string | no | 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 | string | no | For recurring events only: ISO 8601 start of the single occurrence to cancel. The rest of the series is unaffected. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_id | string | yes | Event ID of the hold to confirm |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| event_id | string | yes | Event ID of the hold to release |
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 — 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).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | yes | Agent ID that will own this subscription |
| calendar_id | string | yes | Calendar ID to sync external events into |
| url | string | yes | HTTPS URL of the iCal feed (.ics) to subscribe to |
| label | string | no | Optional label for this subscription |
List an agent's external iCal feed subscriptions (e.g. linked Google Calendar / Outlook feeds), including their sync status and last sync time.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | yes | Agent ID whose iCal subscriptions to list |
| status | string | no | Filter by subscription status |
| limit | integer | no | Max results to return |
| offset | integer | no | Pagination offset |
Get a single external iCal feed subscription by id, including its sync status, last sync time, and last error.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| subscription_id | string | yes | iCal subscription ID to fetch |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| subscription_id | string | yes | iCal subscription ID to update |
| label | string | no | New label for this subscription |
| url | string | no | New HTTPS URL of the iCal feed (.ics) |
Delete an external iCal feed subscription. Events previously synced from the feed are no longer refreshed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| subscription_id | string | yes | iCal subscription ID to delete |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| subscription_id | string | yes | iCal subscription ID to sync |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | yes | Calendar ID |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | Short description of what the meeting is about |
| description | string | no | Longer context/agenda |
| organizer_agent_id | string | yes | Agent ID proposing the meeting |
| participant_agent_ids | array | yes | Agent IDs invited to respond |
| calendar_id | string | yes | Calendar the resolved event will be created on |
| slots | array | yes | Candidate time slots (up to 20) |
| expires_at | string | no | Auto-cancel cutoff if unresolved |
List scheduling proposals for the org. Filter by status (pending|confirmed|expired|cancelled) or organizer_agent_id. Requires an org-level API key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Filter by proposal status |
| organizer_agent_id | string | no | Filter by organizer agent |
| limit | integer | no | Max results (default 50) |
| offset | integer | no | Pagination offset (default 0) |
Get a scheduling proposal by id, including its slots and per-participant responses. Requires an org-level API key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| proposal_id | string | yes | Proposal to fetch |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| proposal_id | string | yes | Proposal to respond to |
| agent_id | string | yes | Participant agent responding |
| response | string | yes | Decision from this agent |
| selected_slot_id | string | no | Required when response is "accept" |
| counter_slots | array | no | Alternative slots when response is "counter" |
| message | string | no | Optional note for the organizer |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| proposal_id | string | yes | Proposal to resolve |
Cancel an open proposal. Fires a proposal.cancelled webhook with reason="organizer_cancelled". Requires an org-level API key. Pro plan only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| proposal_id | string | yes | Proposal to cancel |
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 automatically applies them (busy-block expansion for buffers, masking outside working hours). Upsert: overwrites any existing rules.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | yes | Calendar to configure |
| buffer_before_minutes | integer | no | Minutes of buffer before each event (0–120) |
| buffer_after_minutes | integer | no | Minutes of buffer after each event (0–120) |
| working_hours | no | Per-day working hours map in the calendar's timezone; omit keys for off-days. Pass null to remove any working-hours constraint. | |
| timezone | string | no | IANA timezone used to interpret working_hours (e.g. America/New_York) |
Read the buffer times and working-hours rules configured on a calendar. Returns the rules row, or an error if none are set.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | yes | Calendar to read |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | yes | Calendar whose rules should be cleared |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | yes | Agent ID this key is scoped to |
| label | string | no | Human-readable label for the key |
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.
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key_id | string | yes | ID of the scoped key to revoke |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | HTTPS endpoint that will receive event deliveries |
| events | array | yes | Event types to subscribe to |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Max results to return |
| offset | integer | no | Pagination offset |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| webhook_id | string | yes | Webhook subscription to fetch |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| webhook_id | string | yes | Webhook subscription to update |
| url | string | no | New HTTPS delivery endpoint |
| events | array | no | Replacement set of event types to subscribe to |
| active | boolean | no | Set false to pause deliveries, true to resume |
Permanently delete a webhook subscription. This frees its endpoint slot against the per-plan cap. Requires an org-level API key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| webhook_id | string | yes | Webhook subscription to delete |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| webhook_id | string | yes | Webhook subscription whose deliveries to list |
| limit | integer | no | Max results to return |
| offset | integer | no | Pagination offset |
| status | string | no | Filter to a single delivery status |
| include_payload | boolean | no | Include the full event payload sent on each delivery |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | yes | Agent ID to fetch |
Update an agent's name, description, metadata, or status (active/paused). Requires an org-level API key — agent-scoped keys cannot mutate agents.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | yes | Agent ID to update |
| name | string | no | New display name |
| description | no | New description (null to clear) | |
| metadata | object | no | Arbitrary metadata (max 16KB) |
| status | string | no | Operational status |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | yes | Agent ID to decommission |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | no | 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 | no | Pass "all" to include calendars across all agents (org keys only) |
| limit | integer | no | Max results to return |
| offset | integer | no | Pagination offset |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | yes | Calendar ID to fetch |
Update a calendar's name, timezone, agent status, default reminders, or metadata. Agent-scoped keys may only update calendars owned by their agent.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | yes | Calendar ID to update |
| name | string | no | New calendar name |
| timezone | string | no | New IANA timezone (e.g. America/New_York) |
| agent_status | string | no | Owning agent's status |
| default_reminders | no | Default reminder offsets in minutes; null for system default, [] for none | |
| metadata | object | no | Arbitrary metadata (max 16KB) |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | yes | Calendar ID to delete |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | yes | Calendar a booking resolves to (from create_calendar/list_calendars). |
| title | string | yes | Meeting title shown on the page. |
| description | string | no | Optional description shown to the booker. |
| duration_minutes | integer | no | Slot length in minutes (default 30). |
| buffer_minutes | integer | no | Padding before/after existing events (default 0). |
| window_days | integer | no | How far ahead bookings are allowed (default 14). |
| min_notice_minutes | integer | no | Minimum lead time before a bookable slot (default 0). |
| timezone | string | no | IANA timezone for display + working hours (default UTC). |
| availability_constraints | no | Weekly working hours, e.g. {"mon":{"start":"09:00","end":"17:00"}}. Omit/null for any time in the window. | |
| active | boolean | no | Whether the page accepts bookings (default true). |
List booking pages in the org. Agent-scoped keys see only pages on their own agent's calendars.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Max results to return |
| offset | integer | no | Pagination offset |
Fetch a single booking page by ID, including its public booking_url and settings.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| booking_page_id | string | yes | Booking page ID to fetch (bkp_...) |
Delete (deactivate) a booking page. Its hosted URL stops resolving; already-booked events are unaffected.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| booking_page_id | string | yes | Booking page ID to delete (bkp_...) |
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.
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | no | Start of the window (ISO 8601). Silently clamped to the plan retention window if older. |
| to | string | no | End of the window (ISO 8601) |
| action | string | no | Filter by action name (e.g. event.created) |
| actor_key_prefix | string | no | Filter by the API key prefix that performed the action |
| cursor | string | no | Opaque pagination cursor from a previous response |
| limit | integer | no | Max results to return (default 50) |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tos_version | string | yes | The terms-of-service version to accept; must match the current version |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| calendar_id | string | yes | Chronary calendar whose owning agent will receive authorized availability |
| capabilities | array | no | Request opaque availability, plus optional opt-in event publishing permission |
| publication_policy | string | no | Desired publishing policy; a human still chooses the destination |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| connection_link_id | string | yes | Connection setup link ID |
Cancel a pending human-calendar setup request. This invalidates the setup URL and does not disconnect an already completed Google or Microsoft connection.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| connection_link_id | string | yes | Connection setup link ID |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Chronary or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Chronary can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.