MCP Tools Reference
Chronary exposes 9 MCP tools. Each tool maps to one or more REST API endpoints but is designed for natural-language invocation by AI agents.
create_agent
Section titled “create_agent”Create a new agent in your organization.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Display name for the agent |
type | enum: ai, human, resource | Yes | Agent type — ai for bots, human for people, resource for rooms/equipment |
description | string | No | Optional description of the agent’s purpose |
Example
Section titled “Example”User: “Create an AI agent for my customer support team”
Tool call:
{ "name": "create_agent", "arguments": { "name": "Customer Support Agent", "type": "ai", "description": "Handles scheduling for customer support calls" }}Response:
{ "id": "agt_a1b2c3d4", "name": "Customer Support Agent", "type": "ai", "description": "Handles scheduling for customer support calls", "status": "active", "created_at": "2026-04-04T10:00:00Z"}list_agents
Section titled “list_agents”List agents in your organization with optional filtering.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | enum: ai, human, resource | No | — | Filter by agent type |
status | enum: active, paused, decommissioned | No | — | Filter by status |
limit | number (1–200) | No | 50 | Maximum results to return |
offset | number | No | 0 | Pagination offset |
Example
Section titled “Example”User: “Show me all my active AI agents”
Tool call:
{ "name": "list_agents", "arguments": { "type": "ai", "status": "active" }}Response:
{ "data": [ { "id": "agt_a1b2c3d4", "name": "Customer Support Agent", "type": "ai", "status": "active" }, { "id": "agt_e5f6g7h8", "name": "Sales Agent", "type": "ai", "status": "active" } ], "total": 2, "limit": 50, "offset": 0}create_calendar
Section titled “create_calendar”Create a calendar. Calendars can belong to a specific agent or exist at the organization level.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Calendar display name |
agent_id | string | No | Agent to own this calendar. Omit for an org-level calendar. |
timezone | string (IANA) | Yes | Calendar timezone, e.g. America/New_York, Europe/London, UTC |
Example
Section titled “Example”User: “Create a calendar for my sales agent in New York timezone”
Tool call:
{ "name": "create_calendar", "arguments": { "name": "Sales Calendar", "agent_id": "agt_e5f6g7h8", "timezone": "America/New_York" }}Response:
{ "id": "cal_x1y2z3", "name": "Sales Calendar", "agent_id": "agt_e5f6g7h8", "timezone": "America/New_York", "ical_url": "https://api.chronary.ai/ical/abc123.ics", "created_at": "2026-04-04T10:05:00Z"}create_event
Section titled “create_event”Create an event on a calendar.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
calendar_id | string | Yes | Target calendar ID (cal_ prefix) |
title | string | Yes | Event title |
start_time | string (ISO 8601) | Yes | Event start time, e.g. 2026-04-07T14:00:00Z |
end_time | string (ISO 8601) | Yes | Event end time |
description | string | No | Event description or notes |
all_day | boolean | No | Set to true for all-day events |
Example
Section titled “Example”User: “Schedule a 30-minute demo call for next Monday at 2pm UTC”
Tool call:
{ "name": "create_event", "arguments": { "calendar_id": "cal_x1y2z3", "title": "Demo Call", "start_time": "2026-04-07T14:00:00Z", "end_time": "2026-04-07T14:30:00Z", "description": "Product demo for prospective client" }}Response:
{ "id": "evt_m1n2o3", "calendar_id": "cal_x1y2z3", "title": "Demo Call", "start_time": "2026-04-07T14:00:00Z", "end_time": "2026-04-07T14:30:00Z", "description": "Product demo for prospective client", "status": "confirmed", "created_at": "2026-04-04T10:10:00Z"}list_events
Section titled “list_events”List events on a calendar with optional time-range filtering.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
calendar_id | string | Yes | — | Calendar ID to query |
start_after | string (ISO 8601) | No | — | Only events starting after this time |
start_before | string (ISO 8601) | No | — | Only events starting before this time |
limit | number (1–200) | No | 50 | Maximum results to return |
offset | number | No | 0 | Pagination offset |
Example
Section titled “Example”User: “What meetings do I have next week?”
Tool call:
{ "name": "list_events", "arguments": { "calendar_id": "cal_x1y2z3", "start_after": "2026-04-06T00:00:00Z", "start_before": "2026-04-13T00:00:00Z" }}Response:
{ "data": [ { "id": "evt_m1n2o3", "title": "Demo Call", "start_time": "2026-04-07T14:00:00Z", "end_time": "2026-04-07T14:30:00Z", "status": "confirmed" }, { "id": "evt_p4q5r6", "title": "Team Standup", "start_time": "2026-04-08T09:00:00Z", "end_time": "2026-04-08T09:15:00Z", "status": "confirmed" } ], "total": 2, "limit": 50, "offset": 0}cancel_event
Section titled “cancel_event”Cancel an event. The event is marked as cancelled rather than deleted, preserving history.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
calendar_id | string | Yes | Calendar the event belongs to |
event_id | string | Yes | Event to cancel (evt_ prefix) |
Example
Section titled “Example”User: “Cancel my demo call on Monday”
Tool call:
{ "name": "cancel_event", "arguments": { "calendar_id": "cal_x1y2z3", "event_id": "evt_m1n2o3" }}Response:
{ "id": "evt_m1n2o3", "title": "Demo Call", "status": "cancelled", "cancelled_at": "2026-04-04T11:00:00Z"}get_availability
Section titled “get_availability”Query available time slots for a single agent across all their calendars.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
agent_id | string | Yes | — | Agent to check availability for |
start | string (ISO 8601) | Yes | — | Start of the query window |
end | string (ISO 8601) | Yes | — | End of the query window |
slot_duration | enum: 15m, 30m, 45m, 1h, 2h | No | 30m | Duration of each available slot |
include_busy | boolean | No | false | Include busy periods in the response |
Example
Section titled “Example”User: “When is my support agent free tomorrow afternoon for a 1-hour meeting?”
Tool call:
{ "name": "get_availability", "arguments": { "agent_id": "agt_a1b2c3d4", "start": "2026-04-05T12:00:00Z", "end": "2026-04-05T18:00:00Z", "slot_duration": "1h" }}Response:
{ "agent_id": "agt_a1b2c3d4", "slots": [ { "start": "2026-04-05T12:00:00Z", "end": "2026-04-05T13:00:00Z" }, { "start": "2026-04-05T13:00:00Z", "end": "2026-04-05T14:00:00Z" }, { "start": "2026-04-05T15:00:00Z", "end": "2026-04-05T16:00:00Z" }, { "start": "2026-04-05T16:00:00Z", "end": "2026-04-05T17:00:00Z" } ]}find_meeting_time
Section titled “find_meeting_time”Find overlapping free slots across multiple agents — ideal for scheduling group meetings.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
agents | array of strings | Yes | — | Agent IDs to check (minimum 2) |
start | string (ISO 8601) | Yes | — | Start of the query window |
end | string (ISO 8601) | Yes | — | End of the query window |
slot_duration | enum: 15m, 30m, 45m, 1h, 2h | No | 30m | Duration of each slot |
calendars | array of strings | No | — | Limit to specific calendars (default: all calendars for each agent) |
include_busy | boolean | No | false | Include per-agent busy periods |
Example
Section titled “Example”User: “Find a 30-minute slot next week where both my sales agent and support agent are free”
Tool call:
{ "name": "find_meeting_time", "arguments": { "agents": ["agt_a1b2c3d4", "agt_e5f6g7h8"], "start": "2026-04-06T09:00:00Z", "end": "2026-04-10T17:00:00Z", "slot_duration": "30m" }}Response:
{ "agents": ["agt_a1b2c3d4", "agt_e5f6g7h8"], "slots": [ { "start": "2026-04-06T10:00:00Z", "end": "2026-04-06T10:30:00Z" }, { "start": "2026-04-06T11:00:00Z", "end": "2026-04-06T11:30:00Z" }, { "start": "2026-04-07T09:00:00Z", "end": "2026-04-07T09:30:00Z" }, { "start": "2026-04-07T15:00:00Z", "end": "2026-04-07T15:30:00Z" } ]}subscribe_ical
Section titled “subscribe_ical”Subscribe an agent’s calendar to an external iCal feed. Chronary will periodically sync events from the external URL into the agent’s calendar.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
agent_id | string | Yes | Agent that owns the target calendar |
calendar_id | string | Yes | Calendar to subscribe to the external feed |
url | string (HTTPS) | Yes | URL of the external .ics feed |
label | string | No | Display label for this subscription |
Example
Section titled “Example”User: “Subscribe my sales agent’s calendar to our company holiday calendar”
Tool call:
{ "name": "subscribe_ical", "arguments": { "agent_id": "agt_e5f6g7h8", "calendar_id": "cal_x1y2z3", "url": "https://company.example.com/holidays.ics", "label": "Company Holidays" }}Response:
{ "id": "sub_k1l2m3", "agent_id": "agt_e5f6g7h8", "calendar_id": "cal_x1y2z3", "url": "https://company.example.com/holidays.ics", "label": "Company Holidays", "status": "active", "last_synced_at": null, "created_at": "2026-04-04T10:15:00Z"}Quick reference
Section titled “Quick reference”| Tool | Purpose | Key parameters |
|---|---|---|
create_agent | Create agent | name, type |
list_agents | List/filter agents | type, status, limit |
create_calendar | Create calendar | name, timezone, agent_id |
create_event | Schedule event | calendar_id, title, start_time, end_time |
list_events | List/filter events | calendar_id, start_after, start_before |
cancel_event | Cancel event | calendar_id, event_id |
get_availability | Single-agent free slots | agent_id, start, end, slot_duration |
find_meeting_time | Cross-agent free slots | agents, start, end, slot_duration |
subscribe_ical | Subscribe to external iCal | agent_id, calendar_id, url |