Skip to content

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 a new agent in your organization.

ParameterTypeRequiredDescription
namestringYesDisplay name for the agent
typeenum: ai, human, resourceYesAgent type — ai for bots, human for people, resource for rooms/equipment
descriptionstringNoOptional description of the agent’s purpose

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 in your organization with optional filtering.

ParameterTypeRequiredDefaultDescription
typeenum: ai, human, resourceNoFilter by agent type
statusenum: active, paused, decommissionedNoFilter by status
limitnumber (1–200)No50Maximum results to return
offsetnumberNo0Pagination offset

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 a calendar. Calendars can belong to a specific agent or exist at the organization level.

ParameterTypeRequiredDescription
namestringYesCalendar display name
agent_idstringNoAgent to own this calendar. Omit for an org-level calendar.
timezonestring (IANA)YesCalendar timezone, e.g. America/New_York, Europe/London, UTC

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 an event on a calendar.

ParameterTypeRequiredDescription
calendar_idstringYesTarget calendar ID (cal_ prefix)
titlestringYesEvent title
start_timestring (ISO 8601)YesEvent start time, e.g. 2026-04-07T14:00:00Z
end_timestring (ISO 8601)YesEvent end time
descriptionstringNoEvent description or notes
all_daybooleanNoSet to true for all-day events

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 on a calendar with optional time-range filtering.

ParameterTypeRequiredDefaultDescription
calendar_idstringYesCalendar ID to query
start_afterstring (ISO 8601)NoOnly events starting after this time
start_beforestring (ISO 8601)NoOnly events starting before this time
limitnumber (1–200)No50Maximum results to return
offsetnumberNo0Pagination offset

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 an event. The event is marked as cancelled rather than deleted, preserving history.

ParameterTypeRequiredDescription
calendar_idstringYesCalendar the event belongs to
event_idstringYesEvent to cancel (evt_ prefix)

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"
}

Query available time slots for a single agent across all their calendars.

ParameterTypeRequiredDefaultDescription
agent_idstringYesAgent to check availability for
startstring (ISO 8601)YesStart of the query window
endstring (ISO 8601)YesEnd of the query window
slot_durationenum: 15m, 30m, 45m, 1h, 2hNo30mDuration of each available slot
include_busybooleanNofalseInclude busy periods in the response

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 overlapping free slots across multiple agents — ideal for scheduling group meetings.

ParameterTypeRequiredDefaultDescription
agentsarray of stringsYesAgent IDs to check (minimum 2)
startstring (ISO 8601)YesStart of the query window
endstring (ISO 8601)YesEnd of the query window
slot_durationenum: 15m, 30m, 45m, 1h, 2hNo30mDuration of each slot
calendarsarray of stringsNoLimit to specific calendars (default: all calendars for each agent)
include_busybooleanNofalseInclude per-agent busy periods

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 an agent’s calendar to an external iCal feed. Chronary will periodically sync events from the external URL into the agent’s calendar.

ParameterTypeRequiredDescription
agent_idstringYesAgent that owns the target calendar
calendar_idstringYesCalendar to subscribe to the external feed
urlstring (HTTPS)YesURL of the external .ics feed
labelstringNoDisplay label for this subscription

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"
}

ToolPurposeKey parameters
create_agentCreate agentname, type
list_agentsList/filter agentstype, status, limit
create_calendarCreate calendarname, timezone, agent_id
create_eventSchedule eventcalendar_id, title, start_time, end_time
list_eventsList/filter eventscalendar_id, start_after, start_before
cancel_eventCancel eventcalendar_id, event_id
get_availabilitySingle-agent free slotsagent_id, start, end, slot_duration
find_meeting_timeCross-agent free slotsagents, start, end, slot_duration
subscribe_icalSubscribe to external iCalagent_id, calendar_id, url