Carly MCP reference

148 tools: 64 read, 44 write, 40 sensitive write. Setup steps for each client are on the MCP server page.

Connection

Server URL
https://carlyassistant.com/mcp/
Transport
Streamable HTTP, stateless
Resource metadata
https://carlyassistant.com/.well-known/oauth-protected-resource/mcp
Authorization server
https://carlyassistant.com/.well-known/oauth-authorization-server

Authentication

OAuth 2.1 is the default. Clients use the authorization code flow with PKCE (S256) and can register themselves with dynamic client registration. An unauthenticated request gets 401 with a WWW-Authenticate header that points to the resource metadata. Access tokens are short-lived; clients renew them with the refresh token. An OAuth connection acts for the one Carly account that authorized it and can use every tool on this page.

API keys are the alternative for clients without OAuth. Create one in the Carly dashboard under Integrations, then API Keys, choosing only the scopes it needs. Send it as Authorization: Bearer <key>. Each tool requires the scope listed beside it below, and a call without that scope is refused. Keys expire after at most 365 days and can be revoked at any time.

Scopes

booking_pages:read
read booking pages and event types
booking_pages:write
create / update booking pages
bookings:read
list and view bookings
calendar:read
read connected calendars and events
calendar:write
create / update / delete calendar data
mail:read
search and read connected mailboxes
mail:write
draft, send, and organize mailbox messages
workflows:read
list workflows and run history
workflows:write
create / edit / run / pause / resume workflows
skills:read
list and view skills
skills:write
create / edit / delete skills
memory:read
read agent memory
memory:write
save / delete agent memory
tasks:read
list scheduled tasks, reminders, and connected provider tasks
tasks:write
create / update / delete scheduled tasks, reminders, and connected provider tasks
workspace:read
read to-dos, data tables, and files
workspace:write
add / edit / delete to-dos, data tables, and Drive / OneDrive files
contacts:read
list and view contacts
contacts:write
add / edit / delete contacts
settings:read
read preferences, signature, and aliases
settings:write
change preferences, signature, and aliases
account:read
read credit usage and connected integrations

Read, write, and sensitive tools

Every tool carries MCP annotations: title, readOnlyHint, destructiveHint, and openWorldHint.

Read
Looks things up and changes nothing. readOnlyHint: true.
Write
Creates or changes data inside the user's own account or connected apps, such as drafts, labels, to-dos, and CRM fields. Nobody else is contacted. destructiveHint: false.
Sensitive write
Sends something to other people, deletes or overwrites data, runs code, or starts an automation that keeps running. destructiveHint: true. Clients should ask the user to approve each call.

Side effects to know

  • Send tools deliver email at once. A sent email cannot be recalled.
  • Creating, moving, or deleting a calendar event can notify its attendees through the calendar provider.
  • Workflows and scheduled tasks keep running on their schedule until they are paused or archived.
  • run_python runs code in a sandbox and can call apps the user has connected to Carly.
  • Sharing tools and booking pages make content visible to the people or public link they name.

Plans and limits

  • Free accounts can use every read tool, organize mail and data, and create drafts.
  • Sending email requires a paid plan. Some workflow features do too. The error says so and links to the plan page.
  • Each account can make 60 tool calls a minute and 1,800 an hour.
  • Sending has a daily recipient cap. The error gives the count and when it resets.
  • Mail, calendar, and file tools need the matching account connected in Carly. If it isn't, the result says so and how to connect it.
  • No region restrictions.

Errors and status

A failed call returns an MCP result with isError: true. Its structured content looks like this:

{
  "success": false,
  "error": "Human-readable reason",
  "code": "tool_failed",
  "retryable": false,
  "effects_may_have_occurred": false,
  "retry_after_seconds": 30
}

retry_after_seconds appears only when a retry is safe. When effects_may_have_occurred is true, do not retry automatically: an email may already have been delivered. Invalid arguments return an error naming the argument. Going over the rate limit returns Rate limit exceeded — retry in Ns. Booking-page tools report failure as {"ok": false, "error": …, "code": …} in the result instead.

tool_failed
The action failed. The message says why.
uncertain_effects
The action may have partly happened. Check before retrying.
capacity_exhausted
The code sandbox is busy. Retry after the delay given.
invalid_code
Code passed to a code tool was rejected before it ran.
preparation_failed
The code sandbox could not be prepared.
execution_failed
Code ran and raised an error.
job_too_large
The code job exceeded its size limit.
job_timeout
The code job ran past its time limit.
output_too_large
The result was too large to return.
artifact_persistence_failed
The action ran but its output file could not be saved.

Tools

Updated 2026-10-05. Open a tool to see its inputs.

add_todo Write workspace:write Add one item to the user's to-do list.
title required
string The to-do text, e.g.
due
string Optional due date, ISO 8601 (YYYY-MM-DD).
priority
integer 1 (urgent) to 4 (none).
project
string The list this belongs to, e.g.
labels
string[] Short tags, e.g.
notes
string Longer detail or context that doesn't belong in the title.
parent_id
integer Make this a sub-task of that to-do (a row_id from list_todos).
on
string[] CRM records this to-do is about: people by email, or record ids (deals, companies).
repeat
string Make it repeat: 'every day', 'every weekday', 'every monday', 'every mon, wed', 'every 2 weeks', 'every month', 'every year'.
due_time
string Optional time of day it is due, 24-hour 'HH:MM'.
assignee
string In a team workspace: the teammate it is for, by name or email.
workspace
string The team workspace to act in, by name (see Workspaces).
aggregate_crm Read contacts:read Calculate grouped counts or numeric aggregates over CRM records.
group_by required
string Field key to group by (e.g., 'status', 'company', 'source').
count_only
boolean If True, just return counts.
limit
integer Max number of groups to return.
filter_field
string Optional field to filter on before grouping.
filter_value
string Value to filter by (case-insensitive contains).
append_onedrive_workbook_row Write workspace:write Append one row to a OneDrive Excel worksheet, optionally seeding a header row.
file_id required
string OneDrive item id of the .xlsx workbook (from list_onedrive_files).
sheet_name required
string Worksheet/tab name to append to.
values required
object[] One row to append — a list of cell values, left to right (e.g.
headers
string[] Column headers to write as the first row, used ONLY when the sheet is empty.
drive_id
string Drive id for a workbook in a SharePoint/team document library (use the drive_id from resolve_onedrive_share_link); omit for the user's own OneDrive.
onedrive_account_id
integer Native account_id from list_integrations(query='OneDrive').
append_to_google_doc Write workspace:write Append text to the end of an existing Google Doc, found by id or name.
drive_account_id
integer Native account_id from list_integrations(query='Google Drive').
document_id
string Google Doc ID to append to.
document_name
string Find the Google Doc by name instead of ID.
folder_id
string Drive folder ID to search in when finding by document_name.
folder_name
string Folder name to search in when finding by document_name.
text required
string Text to append to the end of the document.
archive_workflow Sensitive write workflows:write Archive one owned workflow and retain its run history.
workflow_id required
integer ID of the workflow to archive.
bulk_mail_action Sensitive write mail:write Preview and then apply one mail change across every message matching a scope and filters — the batch alternative to calling a one-message tool repeatedly.
operation required
"preview" | "apply" 'preview' first, then 'apply' with only the returned snapshot_id.
mailbox
string Native Gmail/Outlook mailbox from list_mail_accounts(native_only=true), such as gmail:22 or outlook:33.
snapshot_id
string Required for apply; returned by a preview.
scope
string Required for preview: inbox | folder | all_mail.
location
string Gmail label ID/full name or Outlook folder path.
filters
object Narrow the scope: from_address, to_address, subject_contains, query (plain keywords, not provider syntax), received_after / received_before (ISO-8601).
action
string Required for preview: label | file | categorize | trash.
destination
string Gmail label ID/full name, Outlook category, or Outlook folder path.
cancel_scheduled_task Sensitive write tasks:write Cancel one scheduled task by its exact identifier.
task_id required
integer ID of the task to cancel.
force
boolean Cancel even though the task's thread is still waiting on a reply.
reason
string Why the task is being cancelled, in one user-facing sentence (e.g.
check_calendar Read calendar:read Check events on queryable calendars (e.g., conference rooms).
start_time required
string Start of time range.
end_time required
string End of time range.
calendar_ids
string[] Specific queryable calendar IDs to check.
complete_todo Write workspace:write Mark a to-do done by its row_id (from list_todos).
row_id required
integer The to-do's row_id, from list_todos.
workspace
string The team workspace to act in, by name (see Workspaces).
connect_integration Read account:read Where the user connects an app to Carly: ``connect_url``, the Carly Integrations page.
toolkit required
string
auth_scheme
string Deprecated and ignored.
connect_mcp_server Write settings:write Connect an OAuth-enabled public MCP server such as Granola from its HTTPS server URL.
server_url required
string The provider's public HTTPS MCP server URL, for example https://mcp.granola.ai/mcp.
copy_google_doc Write workspace:write Copy a Google Doc template with its formatting into a new working document.
document_id required
string
drive_account_id
integer Native account_id from list_integrations(query='Google Drive').
title required
string Title for the new working copy.
folder_id
string Destination Drive folder ID; omitted keeps the provider's default copy location.
create_availability_poll Write calendar:write Create a group-scheduling tracker for a set of participants and return mutual free slots.
title required
string Title for the internal scheduling tracker.
dates required
string[] List of date strings (YYYY-MM-DD) that are candidate days
daily_start_hour
integer Earliest hour of the day (0-23).
daily_end_hour
integer Latest hour of the day (1-24).
timezone
string IANA timezone string
participant_emails
string[] Other participants to invite.
create_booking_page_tool Write booking_pages:write Create a public booking page others can use to book time on the owner's calendar.
payload required
object POST body for `/api/v1/booking-pages` + the MCP `create_booking_page_tool`.
create_calendar Write calendar:write Create a new calendar in one of the user's connected calendar accounts.
name required
string Name for the new calendar (e.g.
description
string Calendar description
timezone
string Calendar timezone (e.g.
color
string Calendar color.
create_column Write contacts:write Create one typed custom column in the user's CRM.
label required
string Display name for the column (e.g.
field_type
string Field type: 'text', 'date', 'select', 'textarea', or 'boolean'
options
string[] Options for 'select' type fields (e.g.
is_filterable
boolean Whether this column appears as a filter option
create_data_table Write workspace:write Create a typed data table for non-contact records such as deals, cases, or ledgers.
label required
string Display label for the table, e.g.
name
string Optional snake_case table name.
description
string Short purpose/meaning of this table.
columns
object[] Column specs: [{key, label, field_type, options?, is_filterable?, is_name_field?}].
rows_file
string Optional fh_ CSV/TSV/JSON handle to import while creating the table.
key_field
string Optional natural upsert key column, e.g.
if_exists
"error" | "ignore" What to do if a table with this name already exists.
create_drive_folder Write workspace:write Create a Google Drive folder, reusing an existing folder of the same name when present.
drive_account_id
integer Native account_id from list_integrations(query='Google Drive').
folder_name required
string Name of the folder to create.
parent_folder_id
string Parent folder ID.
parent_folder_name
string Parent folder name.
force_create
boolean By default, creation is blocked when similarly named folders already exist (they are returned in similar_folders so you can reuse one).
create_event Sensitive write calendar:write Create a calendar event with explicit times, attendees, location, recurrence, and conferencing options.
summary required
string
start_time required
string Event start time in YYYY-MM-DDTHH:MM format.
end_time required
string Event end time in YYYY-MM-DDTHH:MM format.
description
string
location
string
attendees
string[]
calendar_id
string Use 'default' to create on the calendar associated with the sender's email account.
timezone
string IANA timezone for this event (e.g., 'America/New_York', 'Europe/Paris').
start_timezone
string IANA timezone for start_time ONLY.
end_timezone
string IANA timezone for end_time ONLY.
recurrence
string[] Recurrence rule for recurring events in RRULE format (RFC 5545).
is_video_call
boolean Set to True for video calls.
show_as_free
boolean If True, marks the event as free/transparent so it will not block calendar availability.
is_all_day
boolean Set to True for all-day events (e.g., vacations, holidays, multi-day trips).
create_gmail_draft Write mail:write Create one unsent draft in the user's Gmail Drafts folder for them to review and send.
gmail_account_id
integer Connected Gmail account ID to use.
drive_account_id
integer Connected Drive account ID to use when attaching Drive files.
to required
string[] Recipient email addresses.
subject required
string Email subject line.
body required
string Email body (plain text).
cc
string[] CC recipients.
bcc
string[] BCC recipients.
gmail_attachments
object[] Legacy — use `files` with the handle_token from list_gmail_attachments instead.
drive_file_ids
string[] Legacy — use `files` with the handle_token from list_drive_files instead.
files
string[] File-handle tokens (fh_...) to attach — the one param for every file: Gmail attachments, Drive files, uploads, saved attachments, run_python outputs.
create_gmail_drafts Write mail:write Create one personalized unsent Gmail draft per recipient, filled from each recipient's fields.
gmail_account_id
integer Connected Gmail account ID to use.
recipients
object[] List of recipient objects.
crm_contact_ids
integer[] CRM contact ids to draft for (from search_crm _record_ids or query_crm contact_id).
subject required
string Email subject line.
body required
string Email body (plain text).
files
string[] File-handle tokens (fh_...) to attach — chat uploads, saved attachments, or run_python outputs.
create_google_doc Write workspace:write Create a Google Doc in Drive, optionally in a named folder and with initial content.
drive_account_id
integer Native account_id from list_integrations(query='Google Drive').
title required
string Title of the Google Doc to create.
folder_id
string Drive folder ID to create the doc in.
folder_name
string Folder name to create the doc in.
content
string Optional initial text content for the document.
create_microsoft_planner_bucket Write tasks:write Create a bucket in an accessible basic Microsoft Planner plan.
microsoft_planner_account_id
integer Connected Microsoft Planner account id.
plan_id required
string
name required
string
order_hint
string
create_microsoft_planner_plan Write tasks:write Create a basic Planner plan in a Microsoft 365 group the signed-in user already belongs to.
microsoft_planner_account_id
integer Connected Microsoft Planner account id.
title required
string
group_id required
string Microsoft 365 group id.
create_microsoft_planner_task Write tasks:write Create and optionally assign a task in a basic Microsoft Planner plan.
microsoft_planner_account_id
integer Connected Microsoft Planner account id.
plan_id required
string
title required
string
bucket_id
string
assignee_ids
string[] Microsoft Entra user ids to assign.
start_at
string ISO 8601 UTC date/time.
due_at
string ISO 8601 UTC date/time.
priority
integer
description
string
create_microsoft_todo_list Write tasks:write Create a list in the explicitly connected Microsoft To Do account.
microsoft_todo_account_id
integer Connected Microsoft To Do account id.
display_name required
string Name for the new Microsoft To Do list.
create_microsoft_todo_task Write tasks:write Create a Microsoft To Do task with optional dates, reminder, recurrence, and notes.
microsoft_todo_account_id
integer Connected Microsoft To Do account id.
task_list_id required
string Microsoft To Do task-list id from list_microsoft_todo_lists.
title required
string
body
string
importance
"low" | "normal" | "high"
start_at
string Local ISO date/time in time_zone.
due_at
string Local ISO date/time in time_zone.
reminder_at
string Local ISO date/time in time_zone.
time_zone
string
recurrence_pattern
object
recurrence_range
object
create_onedrive_folder Sensitive write workspace:write Create a OneDrive folder, reusing an existing folder of the same name when present.
onedrive_account_id
integer Native account_id from list_integrations(query='OneDrive').
folder_name required
string Name of the folder to create.
parent_folder_name
string Parent folder name.
share_with
string[] Optional email addresses to grant Edit access on the folder once it exists.
force_create
boolean By default, creation is blocked when similarly named folders already exist (they are returned in similar_folders so you can reuse one).
create_outlook_draft Write mail:write Create one unsent draft in the user's Outlook Drafts folder for them to review and send.
outlook_mail_account_id
integer Which Outlook Mail account to use (id from connected accounts).
to required
string[] Recipient email addresses.
subject required
string Email subject line.
body required
string Email body (plain text).
cc
string[] CC recipients.
bcc
string[] BCC recipients.
ses_attachment_ids
integer[] Legacy — use `files` with the attachment's fh_ token instead.
outlook_attachments
object[] Legacy — use `files` with the handle_token from list_outlook_attachments instead.
onedrive_file_ids
object[] Legacy — use `files` with the handle_token from list_onedrive_files / upload_to_onedrive instead.
attachments
object[] Raw attachment refs as [{url, filename, content_type?}] for a public download URL.
files
string[] File-handle tokens (fh_...) to attach — the one param for every file: Outlook attachments, OneDrive files, uploads, saved attachments, run_python outputs.
create_outlook_drafts Write mail:write Create one personalized unsent Outlook draft per recipient, filled from each recipient's fields.
outlook_mail_account_id
integer Which Outlook Mail account to use (id from connected accounts).
recipients
object[] List of recipient objects.
crm_contact_ids
integer[] CRM contact ids to draft for (from search_crm _record_ids or query_crm contact_id).
subject required
string Email subject line.
body required
string Email body (plain text).
create_workflow Sensitive write workflows:write Create a recurring job with fixed steps: a trigger, a step graph, and account bindings.
name required
string Short user-visible name for the workflow.
team_id
integer Optional company/team scope id.
graph
object OMIT this when template_id is set — the server instantiates the blueprint's graph directly (preferred: the graph never passes through your context, so it can't…
trigger_type
string 'manual', 'cron', 'webhook', 'booking', 'phone', 'composio', 'pipedream', 'calendar_event', 'calendar_reminder', 'email_received', 'http_poll', 'tabular', 'for…
trigger_spec
object For cron workflows, pass {'cron': '0 9 * * 1'}.
timezone
string IANA timezone for cron schedules and ${now.*}.
run_now
boolean When true, create a manual run immediately after saving.
status
string Initial status: active or paused.
template_id
string PREFERRED creation path: set this to a template/recipe id and OMIT graph — the server instantiates the blueprint itself and adopts its suggested trigger unless…
template_params
object Template parameters.
create_workflow_from_template Sensitive write workflows:write Create a workflow from a vetted server-side Carly template.
name required
string User-visible name for the workflow.
template_id required
string Exact template id returned by list_workflow_templates.
template_params
object Values for the template's blanks, as '<node_id>.<field>': value and 'inputs.<key>': value entries — get_workflow_blueprint lists every accepted key under bluep…
trigger_type
string Trigger type.
trigger_spec
object Account bindings or schedule fields required by the selected template trigger.
timezone
string Optional IANA timezone override.
delete_booking_page_tool Sensitive write booking_pages:write Deactivate a booking page so its link stops accepting new bookings.
event_type_id required
integer
delete_data_rows Sensitive write workspace:write Delete selected rows from one owned data table.
table required
string CRM table name.
filters required
object Exact-match filters.
delete_event Sensitive write calendar:write Delete one calendar event by its exact identifier, optionally notifying attendees.
event_id required
string
calendar_id
string
notify_attendees
boolean
allow_invitation_removal
boolean Set true only when the user authorized removing their copy of an event organized by someone else.
delete_memory Sensitive write memory:write Delete one saved memory document by its exact key.
key required
string Doc name to delete
delete_microsoft_planner_task Sensitive write tasks:write Permanently delete a Microsoft Planner task using its last known ETag.
microsoft_planner_account_id
integer Connected Microsoft Planner account id.
task_id required
string
etag
string Last known task ETag; Carly fetches it if omitted.
delete_microsoft_todo_list Sensitive write tasks:write Permanently delete a Microsoft To Do list by provider list id.
microsoft_todo_account_id
integer Connected Microsoft To Do account id.
task_list_id required
string Microsoft To Do task-list id from list_microsoft_todo_lists.
delete_microsoft_todo_task Sensitive write tasks:write Permanently delete one Microsoft To Do task by provider ids.
microsoft_todo_account_id
integer Connected Microsoft To Do account id.
task_list_id required
string Microsoft To Do task-list id from list_microsoft_todo_lists.
task_id required
string Microsoft To Do task id from list_microsoft_todo_tasks.
delete_todo Sensitive write workspace:write Remove a to-do entirely by row_id (from list_todos), along with any sub-tasks under it.
row_id required
integer The to-do's row_id, from list_todos.
workspace
string The team workspace to act in, by name (see Workspaces).
describe_workflow_trigger Read workflows:read Inspect the payload a Composio, http_poll, or email_received trigger delivers, so graph steps can reference real ${trigger.*} field paths instead of guessed ones.
trigger_type
string Trigger type to inspect: composio, http_poll, or email_received.
composio_slug
string Composio trigger slug to inspect when trigger_type='composio' (e.g.
trigger_spec
object Trigger config to inspect when trigger_type='http_poll', e.g.
include_real_samples
boolean If true, fetch up to sample_limit recent items from the upstream source and shape them as the trigger would deliver.
sample_limit
integer Max real samples to fetch when include_real_samples is true (1-5).
account_alias
string Selector (alias or ca_* ID) for the connected account the workflow will use.
download_onedrive_file Read workspace:read Download a non-Excel OneDrive file: text inline, binaries as a readable stored attachment.
file_id required
string OneDrive item id (from list_onedrive_files).
drive_id
string Drive id the file lives in.
onedrive_account_id
integer Native account_id from list_integrations(query='OneDrive').
max_inline_bytes
integer Max bytes to return inline as text.
draft_mail_reply Write mail:write Create a draft reply on an existing Gmail or Outlook thread without sending it.
mailbox
string Exact mailbox key from list_mail_accounts, or a connected native email address; never a bare account number.
message_id
string Legacy message ID; keep its owning mailbox selector.
message_ref
string Preferred account-bound reference returned by search.
body required
string Reply body.
reply_all
boolean
cc
string[] Additional Cc recipients.
bcc
string[] Bcc recipients.
edit_google_doc Sensitive write workspace:write Replace exact text in an existing document using its observed revision.
document_id required
string
drive_account_id
integer Native account_id from list_integrations(query='Google Drive').
revision_id required
string Revision returned by the latest read_google_doc.
tab_id required
string Exact tab ID returned by read_google_doc.
replacements required
object[]
edit_todo Write workspace:write Change an existing to-do by row_id (from list_todos): retitle it, set/clear its due date, change priority/project/labels/description, or reopen it (status='open').
row_id required
integer The to-do's row_id, from list_todos.
title
string New title.
due
string New due date (YYYY-MM-DD), or '' to clear it.
status
string One of the list's column keys (from list_todos `statuses`): 'open' reopens, 'done' finishes; a team may have more.
priority
integer 1 (urgent) to 4 (none).
project
string Move to this project, or '' to remove it from one.
labels
string[] Replaces the label set.
notes
string New description, or '' to clear it.
parent_id
integer Move under this to-do (a row_id), or 0 to make it top-level again.
repeat
string Repeat rule ('every monday', 'every 2 weeks', 'every month'), or '' to stop repeating.
due_time
string Time of day it is due, 24-hour 'HH:MM', or '' for any time.
assignee
string In a team workspace: the teammate it is for, by name or email, or '' to unassign.
workspace
string The team workspace to act in, by name (see Workspaces).
find_event Read calendar:read Search the user's selected calendars for events matching text and time filters.
query required
string
start_time
string
end_time
string
max_results
integer
calendar_id
string If omitted, searches ALL selected calendars across the user's connected accounts (returns a deduplicated union).
timezone
string
find_files Read workspace:read Find the user's stored files by name, label, or tag and return ownership-scoped handles.
query
string Case-insensitive substring matched against a file's name, label, or tags — e.g.
tag
string Optional exact tag to filter by (e.g.
limit
integer Max files to return (capped at 25).
find_free Read calendar:read Find available time slots across the user's selected calendars in a requested window.
start_time
string Start of time window.
end_time
string End of time window.
timezone
string
max_results
integer
min_slot_minutes
integer
flag_mail_message Write mail:write Flag or unflag one message — a star in Gmail, a follow-up flag in Outlook.
mailbox
string Exact mailbox key from list_mail_accounts, or a connected native email address; never a bare account number.
message_id
string Legacy message ID; keep its owning mailbox selector.
message_ref
string Preferred account-bound reference returned by search.
flagged
boolean True to flag/star the message, false to clear it.
get_booking Read bookings:read Get one booking by uid: who booked, when, on which booking page, and its current status.
uid required
string
get_booking_page Read booking_pages:read Get one booking page's full configuration by id: duration, availability windows, questions asked of attendees, and its public link.
event_type_id required
integer
get_contact_emails Read contacts:read Return email addresses for an explicit set of owned CRM record ids.
contact_email
string Email address of the contact to look up (single-contact form).
contact_emails
string[] Batch form — look up MANY contacts in ONE call, e.g.
limit
integer Max threads to return per contact (default 5)
get_crm_schema Read contacts:read List the user's CRM columns and their field types.
include_distributions
boolean Whether to include value distributions for each field (counts of each distinct value).
get_microsoft_planner_plan Read tasks:read Read a basic Planner plan and its buckets/tasks.
microsoft_planner_account_id
integer Connected Microsoft Planner account id.
plan_id required
string
include_tasks
boolean
include_buckets
boolean
limit
integer
get_user_preferences Read settings:read Read the user's current Carly preferences document.

No inputs.

get_workflow Read workflows:read Get one owned workflow's current configuration and recent run summaries.
workflow_id required
integer ID of the workflow to inspect.
compact
boolean When true (default), tool.run_python / tool.run_calendar_code source bodies in `graph` are replaced by a {lines, sha256} stub — the wiring, ids, and every othe…
get_workflow_blueprint Read workflows:read Get one vetted workflow template and its required account bindings or parameters.
template_id
string Template id returned by list_workflow_templates.
config
object ONLY for parameterized recipe templates (rows with parameterized=true).
get_workflow_runs Read workflows:read List recent runs for one owned workflow, with optional step details.
workflow_id required
integer ID of the workflow whose recent runs should be returned.
limit
integer Maximum number of recent runs to return.
include_steps
boolean Default false: returns run-level status, nodes_visited, terminal_node_id, and on failure failed_node_id + failed_step_error_message — enough to triage health w…
include_raw
boolean Only used with include_steps=true.
grep_memory Read memory:read Search or list the user's saved Carly memory documents by text pattern or date range.
pattern
string Text to search for (case-insensitive; matches doc content and key).
start_date
string List/search docs on/after this date (YYYY-MM-DD).
end_date
string List/search docs on/before this date (YYYY-MM-DD).
limit
integer Max docs to return.
label_mail_message Write mail:write Apply one Gmail label or Outlook category to a message, optionally creating it.
mailbox
string Exact mailbox key from list_mail_accounts, or a connected native email address; never a bare account number.
message_id
string Legacy message ID; keep its owning mailbox selector.
message_ref
string Preferred account-bound reference returned by search.
label required
string Gmail label name or Outlook category to apply.
create_missing
boolean Create the label/category if it does not exist.
list_booking_pages Read booking_pages:read List personal and authorized team booking pages with their titles, durations, links, and whether each is currently accepting bookings.

No inputs.

list_bookings Read bookings:read List meetings people have booked on the account's booking pages, filterable by status, booking page, and time window.
status
string
event_type_id
integer
start_time
string
end_time
string
limit
integer
list_calendar_names Read calendar:read List the user's connected calendar accounts and calendars with their exact identifiers.
include_unselected
boolean If True, also include calendars the user has connected but not enabled for Carly (selected=False).
list_calendars Read booking_pages:read List connected calendars as `provider::account_id::calendar_id` keys.

No inputs.

list_data_tables Read workspace:read List the user's data tables with compact schemas and row counts, without loading rows.
include_contacts
boolean Include the physical contacts table in the schema listing.
list_drive_files Read workspace:read List or search files and folders in a connected Google Drive account.
drive_account_id
integer Native account_id from list_integrations(query='Google Drive').
query
string Optional filename search term (uses Drive name contains).
folder_id
string Drive folder ID to search in.
folder_name
string Folder name to search in.
limit
integer Max files to return (1-100).
list_event_types Read booking_pages:read List the API key owner's own event types.
username
string
list_events Read calendar:read List events from the user's selected calendars in a requested time range.
start_time
string Start of date range.
end_time
string End of date range.
max_results
integer
query
string Text search query to filter events.
output_format
"compact" | "full" Default 'compact' (id, title, start/end, time_label, location).
include_free_events
boolean Include Free events for duplicate checks or event management.
event_id
string Exact provider event id from a prior compact list_events result.
calendar_id
string Optional calendar filter.
list_integrations Read account:read List apps Carly can connect and whether the current user connected them.
query
string
connected_only
boolean
list_mail_accounts Read mail:read List the user's connected Gmail and Outlook mailboxes and their exact mailbox keys.
native_only
boolean True to list only native Gmail/Outlook mailboxes supported by bulk_mail_action.
list_mail_attachments Read mail:read List the attachments on one selected Gmail or Outlook message, each with an fh_ handle_token.
mailbox
string Exact mailbox key from list_mail_accounts, or a connected native email address; never a bare account number.
message_id
string Legacy message ID; keep its owning mailbox selector.
message_ref
string Preferred account-bound reference returned by search.
list_mail_folders Read mail:read List the folders in one selected mailbox, with the exact names move_mail_message accepts.
mailbox required
string Exact mailbox value returned by list_mail_accounts, such as 'gmail:22', 'outlook:33', 'gmail:ca_connection', or 'zoho:ca_connection:provider_account_id'.
list_mail_labels Read mail:read List the Gmail labels or Outlook categories available in one selected mailbox.
mailbox required
string Exact mailbox value returned by list_mail_accounts, such as 'gmail:22', 'outlook:33', 'gmail:ca_connection', or 'zoho:ca_connection:provider_account_id'.
list_mcp_connections Read account:read List the user's connected MCP servers, their status, and the number of available tools.
include_inactive
boolean Include connections that are still authorizing, need reconnection, or failed.
list_microsoft_planner_plans Read tasks:read List basic Microsoft Planner plans shared with the connected work/school account.
microsoft_planner_account_id
integer Connected Microsoft Planner account id.
limit
integer
list_microsoft_todo_lists Read tasks:read List Microsoft To Do lists.
microsoft_todo_account_id
integer Connected Microsoft To Do account id.
limit
integer
list_microsoft_todo_tasks Read tasks:read List tasks in one Microsoft To Do list, returning Microsoft provider ids.
microsoft_todo_account_id
integer Connected Microsoft To Do account id.
task_list_id required
string Microsoft To Do task-list id from list_microsoft_todo_lists.
status
"all" | "open" | "completed"
limit
integer
list_onedrive_files Read workspace:read List or search files and folders in a connected OneDrive account.
onedrive_account_id
integer Native account_id from list_integrations(query='OneDrive').
query
string Search term to filter files by name.
folder_id
string OneDrive item id of the folder to search in.
folder_name
string Folder path under root, e.g.
limit
integer Max files to return (1-100).
list_scheduled_tasks Read tasks:read List active scheduled agent tasks, optionally including completed and cancelled history.
include_history
boolean Set to true when the user asks about past tasks — completed one-offs, tasks the user cancelled, or failed tasks — e.g.
list_schedules Read booking_pages:read List personal and editable team working-hours schedules: each one's weekly hours, date overrides, timezone, whether it is the default, and which booking pages use it.

No inputs.

list_skills Read skills:read List the user's saved skills, whether each is prose or code, and the arguments it takes.
include_disabled
boolean Also list skills the user has switched off.
list_slots Read booking_pages:read List available slots for an owned event type.
start_time required
string
end_time required
string
username
string
event_type_slug
string
event_type_id
integer
duration
integer
list_todos Read workspace:read List the user's to-dos (open by default; pass status='all' for everything, or project= to scope to one list).
status
string 'open' (default: every column that is not done), 'all', or one of the list's column keys (returned as `statuses`).
project
string Only this project's items.
assignee
string In a team workspace: only this teammate's, by name or email.
workspace
string The team workspace to act in, by name (see Workspaces).
list_workflow_templates Read workflows:read Browse Carly's vetted workflow template library by category, tag, or text query.
query
string What the workflow should DO, in your own words — e.g.
list_workflow_trigger_calendars Read workflows:read List exact connected-calendar keys accepted by calendar-triggered workflow templates.

No inputs.

list_workflow_trigger_forms Read workflows:read List the user's Carly forms with the numeric form_id a form_submitted workflow trigger needs, plus each form's field keys.

No inputs.

list_workflow_trigger_mailboxes Read workflows:read List exact connected-mailbox keys accepted by email-triggered workflow templates.

No inputs.

list_workflows Read workflows:read List the user's workflows and compact recent health information.
include_archived
boolean Set true to include archived workflows.
load_skill Read skills:read Read one saved skill's full instructions, argument schema, and last run error.
skill_name required
string The name of the skill to load instructions for
lookup_person Read contacts:read Resolve a person or relationship from the user's contacts to an email address.
query required
string Name, relationship, or alias to look up (e.g., 'dad', 'John', 'my dentist')
manage_crm_records Sensitive write contacts:write Query, create, update, upsert, link, unlink, annotate, aggregate, or delete records across People, Companies, Deals, Notes, and custom CRM objects.
action required
string One of: list, get, create, update, upsert, delete, link, unlink, add_note, kanban, aggregate
object
string 'people', 'companies', 'deals', 'meetings', 'notes', a custom object name, or id.
record_id
integer get/update/delete/link: the record id (a person's contact id is their record id)
email
string People shortcut: find/create the person by email instead of record_id
values
object create/update: {attribute key: value}.
links
object create/update/link: {relation attribute key: [record ids or emails]} e.g.
match
string upsert: the ONE attribute key that identifies an existing record, e.g.
search
string list: word-based search; 3+ words allow one missing word
filters
object list: {attribute key: value} exact filters (stage by label)
conditions
object[] list/kanban/aggregate: [{key, op, value}] AND-ed together — the operator filters 'over $10k' or 'contacted this week' need.
sort
string list: attribute key or last_interaction_at / updated_at / created_at / name
order
string list: asc | desc
limit
integer list: max records (≤200)
offset
integer list: pagination offset
group_by
string aggregate: attribute key to group by (e.g.
sum_key
string aggregate: numeric/currency attribute to sum (e.g.
title
string add_note: title
body
string add_note: the note text
on
object[] add_note: record ids or people emails the note is about
workspace
string The team workspace to act in, by name (see Workspaces).
manage_crm_schema Sensitive write contacts:write Configure People, Companies, Deals, Notes, and custom CRM objects: list or create objects; add, edit, hide, reorder, or delete typed fields; configure deal stages and select options; and create, update, list, or delete saved table and boar…
action required
string One of: list_objects, create_object, add_attribute, update_attribute, delete_attribute, hide_attributes, show_attributes, reorder_attributes, set_options, set_…
object
string Object to act on: 'people', 'companies', 'deals', 'meetings', 'notes', a custom object's name, or its id.
label
string create_object: plural label (e.g.
singular_label
string create_object: singular label (e.g.
attribute
string Attribute key, label or id for update/delete/set_options/set_stages
attributes
object[] create_object: list of attribute specs [{label, field_type, options?, is_name_field?}]; hide/show/reorder_attributes: list of attribute keys (reorder = the ful…
field_type
string add_attribute: text, textarea, number, currency, date, datetime, select, multiselect, boolean, status, email, phone, url, relation
options
string[] select/multiselect options (add_attribute or set_options)
stages
object[] status stages for set_stages / add_attribute(status): [{label, kind: open|won|lost, color?}] — the full ordered list; existing stages are matched by label (or…
target_object
string relation attributes: which object the relation points to ('people', 'companies', 'deals', custom name)
multiple
boolean relation attributes: can a record link to many targets
is_filterable
boolean Show this attribute as a filter in the table
is_hidden
boolean update_attribute: hide (true) / show (false) in the table
delete_data
boolean delete_attribute: also remove the stored values from every record
view
string update_view/delete_view: the view's name or id
name
string create_view/update_view: the view name (e.g.
filters
object[] create_view/update_view: [{key, op, value}] AND-ed.
sort
object create_view/update_view: {key, order: asc|desc}
kind
string create_view/update_view: 'table' or 'board' (board needs a status attribute)
move_event Sensitive write calendar:write Move one event from its current calendar to a selected destination calendar.
event_id required
string ID of the event to move
source_calendar_id required
string ID or name of the calendar the event is currently on
destination_calendar_id required
string ID or name of the calendar to move the event to
move_mail_message Write mail:write Move one Gmail or Outlook message to an explicit label or folder.
mailbox
string Exact mailbox key from list_mail_accounts, or a connected native email address; never a bare account number.
message_id
string Legacy message ID; keep its owning mailbox selector.
message_ref
string Preferred account-bound reference returned by search.
destination required
string Existing Gmail label or Outlook folder name/path (list_mail_folders has the exact names).
create_missing
boolean Create the destination when supported if it does not exist.
archive
boolean Gmail only: also remove the message from the inbox after applying the destination label.
pause_workflow Write workflows:write Pause one owned workflow so future triggers stop firing.
workflow_id required
integer Exact workflow id returned by list_workflows.
preview_workflow Read workflows:read Preview a saved workflow or template graph without saving or performing external writes.
workflow_id
integer Optional ID of a saved workflow to preview.
graph
object Workflow graph to preview.
trigger_type
string Trigger type for the preview: manual, cron, webhook, booking, phone, composio, pipedream, calendar_event, calendar_reminder, email_received, http_poll, tabular…
trigger_spec
object Trigger config used to build the preview payload, e.g.
timezone
string IANA timezone used to render ${now.*} for unsaved graph previews.
sample_event
object Optional trigger payload; used for manual/cron (ignored for data triggers).
sample_index
integer For composio previews, which fetched sample event to use when sample_event is not provided.
query_availability_poll Read calendar:read Read one tracker's status, mutually available slots, and per-participant responses.
session_token required
string The public token of the scheduling session to query
query_crm Read contacts:read Query CRM rows with explicit structured filters, sorting, and pagination.
sql required
string A single read-only SQL query (SQLite dialect) over the user's CRM.
export_filename
string Optional CSV filename (e.g.
query_data Read workspace:read Run one read-only SQL SELECT over the user's own named data tables in a sandbox.
sql required
string A single read-only SQLite SELECT/WITH query over the selected tables.
tables
string[] Agent-created data table names to load into the query sandbox.
include_contacts
boolean Also load the physical contacts table when needed.
export_filename
string Optional CSV filename (e.g.
read_attachment Read workspace:read Read text from an ownership-checked stored file or Gmail/Outlook message attachment.
attachment_id
integer | string Integer SesAttachment.id.
file_handle
string Durable fh_ file token returned by tools such as run_python.
message_id
string Outlook or Gmail message ID containing the attachment.
email_attachment_id
string Optional — target a specific attachment by ID (from list_outlook_attachments / list_gmail_attachments).
provider
string Optional mail provider hint ('gmail' or 'outlook') for workflow-triggered messages.
account_id
integer | string Optional provider-neutral mail account id for workflow-triggered messages.
mailbox_key
string Mailbox identifier as returned by list_mail_accounts / list_mail_attachments, e.g.
outlook_mail_account_id
integer Which Outlook Mail account to use.
gmail_account_id
integer Which Gmail account to use.
page_range
string For PDFs: a page range like '1-10', '3', or '5-end'.
max_chars
integer Optional cap on returned characters.
search
string Case-insensitive term search within this one file (not a mailbox search).
read_google_doc Read workspace:read Read document text, tabs and revision before editing.
document_id required
string
drive_account_id
integer Native account_id from list_integrations(query='Google Drive').
read_knowledge_file Read workspace:read Read one knowledge document sequentially by chunk range, for paging or search context.
file required
string The document's numeric id (preferred) or title, as listed in the knowledge base catalog.
start_chunk
integer Chunk index to start reading from (0-based).
max_chunks
integer How many consecutive chunks to read (capped at 20).
read_mail_message Read mail:read Read one message from a selected Gmail or Outlook mailbox by exact message id.
mailbox
string Exact mailbox key from list_mail_accounts, or a connected native email address; never a bare account number.
message_id
string Legacy message ID; keep its owning mailbox selector.
message_ref
string Preferred account-bound reference returned by search.
folder_id
string Required for Zoho Mail: the folder_id returned by search_mail for this message.
offset
integer Body character offset for continuing a truncated read.
limit
integer Body characters to return.
read_memory Read memory:read Read one saved Carly memory document by its exact key.
key required
string Doc name to read
read_onedrive_workbook Read workspace:read List the worksheets in a OneDrive Excel file, or read one worksheet's rows.
file_id required
string OneDrive item id of the .xlsx workbook (from list_onedrive_files).
sheet_name
string Worksheet/tab name to read.
range
string Optional A1-style range, e.g.
max_rows
integer Max rows to return (1-1000).
drive_id
string Drive id the file lives in.
onedrive_account_id
integer Native account_id from list_integrations(query='OneDrive').
resume_workflow Sensitive write workflows:write Resume one paused owned workflow so its configured triggers can fire.
workflow_id required
integer Exact workflow id returned by list_workflows.
run_calendar_code Sensitive write calendar:write Run a sandboxed snippet against the user's calendars for bulk or conditional edits.
code required
string Python code to execute against the user's calendar accounts.
run_pandas Read workspace:read Analyze the user's tabular data with pandas in Carly's sandbox.
attachment_id
integer Integer SesAttachment.id for a spreadsheet.
file_handle
string A file-handle token (`fh_...`) for the spreadsheet or JSON data to query — works for any kind: SES attachments, Drive, OneDrive, Gmail attachments, Outlook att…
expression required
string Python code to run against the loaded DataFrame.
sheet_name
string For Excel files with multiple sheets, the sheet name to load.
run_python Sensitive write workspace:write Run a Python snippet in Carly's sandbox with the user's connected clients bound.
code required
string Python code to execute.
args
object Optional dict bound as `args` inside the sandbox.
input_attachment_ids
integer[] Legacy param — prefer `files` for new code.
files
string[] Optional file-handle tokens (`fh_...`) to stage into `input_dir/` inside the sandbox.
workspace
string Optional durable working-set name, shared with run_code_interpreter.
publish_to_composio
boolean When True, every output file is also pushed into Composio's S3 storage.
run_skill Sensitive write skills:write Run one already-saved skill by name with explicit arguments.
skill_name required
string The name of the skill to execute.
args
object Arguments dict for the skill.
files
object[] Optional list of file-handle tokens (`fh_...`) to stage into the skill's `input_dir/`.
input_attachment_ids
integer[] Compatibility path: inbound SES attachment IDs to stage into `input_dir/` (runtime='python' only).
ses_attachment_ids
integer[] Alias for input_attachment_ids (merged with it).
run_workflow_now Sensitive write workflows:write Run one owned workflow immediately with its real side effects, outside its schedule.
input_data
object Manual workflows only: values for ${input.*}, separate from trigger data.
workflow_id required
integer ID of the workflow to run immediately.
sample_event
object Optional trigger payload override for non-manual workflows.
confirmed_message_id
string email_received only.
mailbox_key
string email_received only.
folder_id
string email_received only.
save_memory Sensitive write memory:write Create or replace one named memory document for future conversations.
key required
string Doc name (e.g.
content required
string Full doc content (markdown).
save_skill Write skills:write Save a sandbox Python snippet as a named reusable skill.
skill_name required
string Name of the skill.
runtime required
string Execution runtime.
code required
string Python code to store as the skill body.
tool_schema
object JSON-Schema-ish dict describing the args this skill expects.
description required
string One-line description used for skill matching (same field as prose skills).
instructions
string Markdown playbook explaining when to use the skill and what the args mean.
verification_notes required
string How you verified this code.
schedule_task Sensitive write tasks:write Schedule a one-time, cron, or interval agent task with an explicit prompt and delivery settings.
name required
string Short name for the task (e.g.
prompt required
string What the agent should do when this task runs.
schedule_type required
string 'once', 'cron', or 'interval'.
schedule_spec
object Schedule details.
delay_minutes
integer For 'once' tasks: run this many minutes from now.
timezone
string IANA timezone for the schedule.
delivery_channel
string How the task's output reaches the user when the fire-time run doesn't send anything itself: 'email' (default) or 'sms' (the final reply is texted to the user's…
status
string Initial status: active or paused.
search_crm Read contacts:read Search the user's CRM records by names, emails, companies, and text fields.
query
string Free-text search across contact name, email, notes, and all custom CRM data fields.
filters
object Dict of field_key → value to filter by specific fields (e.g.
sort_by
string Field to sort by: 'interaction_count' (most emailed), 'last_interaction_at' (most recent), or 'updated_at' (default).
limit
integer Max records to return inline (capped at 50).
search_knowledge_base Read workspace:read Search the user's uploaded knowledge documents by meaning and keyword.
query required
string Natural-language question or keywords to search the knowledge base for — e.g.
file
string Optional: restrict the search to one document.
max_results
integer Max passages to return (capped at 12).
search_mail Read mail:read Search one selected Gmail or Outlook mailbox with provider-neutral structured filters.
mailbox required
string Exact mailbox value returned by list_mail_accounts, such as 'gmail:22', 'outlook:33', 'gmail:ca_connection', or 'zoho:ca_connection:provider_account_id'.
query
string Plain-text mailbox search query.
from_address
string Only messages from this email address.
to_address
string Only messages sent to this email address.
subject
string Subject text filter.
within_days
integer Only messages from the last N days (1-36500).
inbox_only
boolean Restrict results to the inbox.
unread_only
boolean Return only unread messages.
has_attachment
boolean Filter by whether a message has attachments.
max_results
integer Max messages to return (1-250).
page_token
string Pagination token returned by a prior identical search.
include_body
boolean Include each message's FULL body in the results.
send_email Sensitive write mail:write Send a new email from Carly to explicit recipients, with optional attachments and idempotency key.
to
object[] Recipient objects.
crm_contact_ids
integer[] CRM contact ids to send to (from search_crm _record_ids or query_crm contact_id).
subject
string Email subject — used for brand-new threads.
body required
string Email body.
cc
string[] CC recipients.
send_individually
boolean When true, sends a separate email per recipient (each rendered with that recipient's own fields) — use for outreach, prospecting, or any case where recipients…
start_new_thread
boolean When false: the reply stays in the current thread and recipients see its subject.
allow_new_recipients_in_thread
boolean When false, sends to external recipients not already on the active thread are blocked.
allow_merge_fallbacks
boolean When false, multi-recipient individualized external sends fail if any referenced merge var is missing, even if the placeholder has a fallback like {{first_name…
on_behalf_of
string Email address of the user on whose behalf this email is being sent.
attachments
object[] File attachments.
ses_attachment_ids
integer[] Legacy — use `files` with the attachment's fh_ token instead.
outlook_attachments
object[] Legacy — use `files` with the handle_token from list_outlook_attachments instead.
onedrive_file_ids
object[] Legacy — use `files` with the handle_token from list_onedrive_files instead.
files
string[] File-handle tokens (`fh_...`) to attach — the one param for every file: inbound attachments, Gmail/Outlook attachments, OneDrive/Drive files, uploads, and run_…
send_gmail Sensitive write mail:write Send a new email from the user's own Gmail account, so it appears sent by them.
gmail_account_id
integer Connected Gmail account ID to use.
drive_account_id
integer Connected Drive account ID to use when attaching Drive files.
to
object[] Recipient objects.
crm_contact_ids
integer[] CRM contact ids to send to (from search_crm _record_ids or query_crm contact_id).
subject required
string Email subject line.
body required
string Email body (plain text).
cc
string[] CC recipients.
bcc
string[] BCC recipients.
send_individually
boolean When true, sends a separate email per recipient (each rendered with that recipient's own fields) — use for outreach, prospecting, or any case where recipients…
gmail_attachments
object[] Legacy — use `files` with the handle_token from list_gmail_attachments instead.
drive_file_ids
string[] Legacy — use `files` with the handle_token from list_drive_files instead.
files
string[] File-handle tokens (fh_...) to attach — the one param for every file: Gmail attachments, Drive files, uploads, saved attachments, run_python outputs.
send_mail_reply Sensitive write mail:write Send a reply on an existing Gmail or Outlook thread.
mailbox
string Exact mailbox key from list_mail_accounts, or a connected native email address; never a bare account number.
message_id
string Legacy message ID; keep its owning mailbox selector.
message_ref
string Preferred account-bound reference returned by search.
body required
string Reply body.
reply_all
boolean
cc
string[] Additional Cc recipients.
bcc
string[] Bcc recipients.
send_outlook_mail Sensitive write mail:write Send a new email from the user's own Outlook account, so it appears sent by them.
outlook_mail_account_id
integer Which Outlook Mail account to use (id from connected accounts).
to
object[] Recipient objects.
crm_contact_ids
integer[] CRM contact ids to send to (from search_crm _record_ids or query_crm contact_id).
subject required
string Email subject line.
body required
string Email body (plain text).
cc
string[] CC recipients.
bcc
string[] BCC recipients.
send_individually
boolean When true, sends a separate email per recipient (each rendered with that recipient's own fields) — use for outreach, prospecting, or any case where recipients…
ses_attachment_ids
integer[] Legacy — use `files` with the attachment's fh_ token instead.
outlook_attachments
object[] Legacy — use `files` with the handle_token from list_outlook_attachments instead.
onedrive_file_ids
object[] Legacy — use `files` with the handle_token from list_onedrive_files / upload_to_onedrive instead.
attachments
object[] Raw attachment refs as [{url, filename, content_type?}] for a public download URL.
files
string[] File-handle tokens (fh_...) to attach — the one param for every file: Outlook attachments, OneDrive files, uploads, saved attachments, run_python outputs.
share_calendar Sensitive write calendar:write Grant an email address an explicit access role on a selected calendar.
calendar_id required
string ID or exact name of the calendar to share
email required
string Email address of the person to share with
role
string Permission level.
share_onedrive_item Sensitive write workspace:write Grant an explicit email address view or edit access to one OneDrive file or folder.
item_id required
string OneDrive item id (folder or file) to share.
recipients required
string[] Email addresses to grant access to.
role
string Permission level: 'write' (Edit) or 'read' (View).
require_sign_in
boolean If true, recipients must sign in.
send_invitation
boolean If true, OneDrive emails an invitation.
invitation_message
string Optional note included in the invitation email (only used when send_invitation=true).
onedrive_account_id
integer Native account_id from list_integrations(query='OneDrive').
test_workflow Read workflows:read Execute safe read steps for one workflow while replacing every external write with a preview.
workflow_id
integer Optional saved workflow id to test.
graph
object Unsaved workflow graph to test.
trigger_type
string Trigger type for unsaved graph tests: manual, cron, webhook, booking, phone, composio, pipedream, calendar_event, calendar_reminder, email_received, http_poll,…
trigger_spec
object Trigger config for unsaved graph tests.
timezone
string IANA timezone used to render ${now.*} for unsaved graph tests.
sample_event
object Optional trigger payload; accepted for manual/cron only (REFUSED for data triggers — use sample_message_id or sample_run_id to test those against real data).
sample_message_id
string Provider id of a REAL message in the watched mailbox to test on (email_received triggers).
sample_run_id
integer A past run id of this workflow (see get_workflow_runs) whose stored trigger payload and run inputs are replayed in their original namespaces without repeating…
sample_index
integer Fetched sample index to use when sample_event is omitted.
up_to_node_id
string Optional node id.
include_steps
boolean Default false: returns the dry-run verdict + node-by-node effect_chain + summary (status counts, failed steps with errors, and write previews showing exactly w…
trash_mail_message Sensitive write mail:write Move one message to Gmail Trash or Outlook Deleted Items; reversible from the provider's UI.
mailbox
string Exact mailbox key from list_mail_accounts, or a connected native email address; never a bare account number.
message_id
string Legacy message ID; keep its owning mailbox selector.
message_ref
string Preferred account-bound reference returned by search.
unlabel_mail_message Write mail:write Remove one Gmail label or Outlook category from a message.
mailbox
string Exact mailbox key from list_mail_accounts, or a connected native email address; never a bare account number.
message_id
string Legacy message ID; keep its owning mailbox selector.
message_ref
string Preferred account-bound reference returned by search.
label required
string Gmail label name or Outlook category to remove.
unsubscribe_from_sender Sensitive write mail:write Trigger a sender's RFC 8058 one-click List-Unsubscribe link from one of their messages.
mailbox
string Exact mailbox key from list_mail_accounts, or a connected native email address; never a bare account number.
message_id
string Legacy message ID; keep its owning mailbox selector.
message_ref
string Preferred account-bound reference returned by search.
update_availability_poll Write calendar:write Edit an existing tracker's dates, hours, timezone, title, or participants in place.
session_token required
string The public token of the scheduling session to update
title
string New tracker title
dates
string[] Replacement list of candidate days (YYYY-MM-DD).
daily_start_hour
integer New earliest hour of the day (0-23)
daily_end_hour
integer New latest hour of the day (1-24)
timezone
string New IANA timezone string
add_participant_emails
string[] Participant emails to add (skipped if already present)
remove_participant_emails
string[] Participant emails to remove from the tracker
update_booking_page_tool Write booking_pages:write Change a public booking page's title, duration, questions, limits, or which schedule it books against (`schedule_id`; null = the owner's default).
event_type_id required
integer
payload required
object PATCH body for `/api/v1/booking-pages/<id>` + the MCP `update_booking_page_tool`.
update_calendar Write calendar:write Update the name, description, or settings of an existing calendar.
calendar_id required
string ID or exact name of the calendar to update
name
string New calendar name
description
string New calendar description
color
string New calendar color (see create_calendar for valid values)
update_contact Write contacts:write Add or update facts and structured fields for one or more contacts.
email
string Email address of the contact (single-contact form).
update_request
string What to add/update about this contact in natural language, e.g.
updates
object[] Batch form — update MANY contacts in ONE call, e.g.
update_crm Write contacts:write Update explicit fields on selected owned CRM records.
contact_email
string Email of the contact.
record_id
integer ID of an existing contact to update.
fields
object Key-value pairs of CRM fields to set.
activity
object Optional timeline entry to APPEND to the contact's activity log: {'type': 'email_sent'|'email_received'|'booking_created'|'booking_cancelled'|'booking_reschedu…
update_data_rows Write workspace:write Update explicit fields on selected rows of one owned data table.
table required
string CRM table name.
filters required
object Exact-match filters.
set_fields required
object Fields to set on matching rows.
update_event Sensitive write calendar:write Update one owned calendar event by its exact identifier; omitted fields remain unchanged.
event_id required
string
summary
string
start_time
string New start time (YYYY-MM-DDTHH:MM).
end_time
string New end time (YYYY-MM-DDTHH:MM).
description
string Event description/body text.
description_mode
string How to apply the description field.
location
string
attendees
string[]
calendar_id
string
timezone
string IANA timezone for this update (e.g., 'Asia/Tokyo').
start_timezone
string IANA timezone for start_time ONLY.
end_timezone
string IANA timezone for end_time ONLY.
same_day_only
boolean
preserve_duration
boolean
reason
string
user_id
string
is_video_call
boolean Set to True for video calls.
show_as_free
boolean If provided, updates whether the event should appear as free (transparent) or busy (opaque).
color_id
string Google Calendar event color, as the colorId string '1'-'11': 1=lavender, 2=sage, 3=grape, 4=tangerine, 5=banana, 6=flamingo, 7=peacock, 8=graphite, 9=blueberry…
update_all_instances
boolean
update_microsoft_planner_task Write tasks:write Update, assign, move between buckets, or complete a Planner task using safe ETag concurrency.
microsoft_planner_account_id
integer Connected Microsoft Planner account id.
task_id required
string
etag
string Last known task ETag; Carly fetches it if omitted.
title
string
bucket_id
string
assignee_ids
string[] Complete replacement assignee list.
start_at
string
due_at
string
priority
integer
percent_complete
integer
description
string
update_microsoft_todo_task Write tasks:write Update, complete, or reopen a Microsoft To Do task in place using its provider ids.
microsoft_todo_account_id
integer Connected Microsoft To Do account id.
task_list_id required
string Microsoft To Do task-list id from list_microsoft_todo_lists.
task_id required
string Microsoft To Do task id from list_microsoft_todo_tasks.
title
string
body
string
importance
"low" | "normal" | "high"
status
"notStarted" | "inProgress" | "completed" | "waitingOnOthers" | "deferred"
start_at
string
due_at
string
reminder_at
string
time_zone
string
recurrence_pattern
object
recurrence_range
object
clear_start
boolean
clear_due
boolean
clear_reminder
boolean
update_participant_availability Write calendar:write Record one participant's available or unavailable times on an existing tracker.
session_token required
string The public token of the scheduling session
participant_email required
string Email of the participant to update
participant_name
string Display name for the participant
available_ranges
object[] List of available time ranges, each with 'start' and 'end' in ISO 8601 format
unavailable_ranges
object[] Optional list of unavailable time ranges, each with 'start' and 'end' in ISO 8601 format
timezone
string IANA timezone for the provided ranges.
update_schedule Write booking_pages:write Change a personal or authorized team schedule: its name, timezone, weekly hours (`availability`), or date overrides.
schedule_id required
integer
payload required
object PATCH body for `/api/schedules/<id>`.
update_scheduled_task Sensitive write tasks:write Update the prompt, name, schedule, timezone, or status of one scheduled task.
task_id required
integer ID of the task to update.
prompt
string New prompt to replace the task's stored instructions.
name
string New display name for the task.
schedule_spec
object New schedule details (same shape as schedule_task).
timezone
string New IANA timezone for the schedule (e.g.
delivery_channel
string Switch how the task's output is delivered: 'email' or 'sms' (text the user's registered phone).
update_skill Write skills:write Replace one saved skill's instructions with a complete new version.
skill_name required
string The name of the skill to update
new_instructions required
string The complete new instructions (replaces the old content entirely)
new_description
string Optional new one-line description.
update_user_preferences Write settings:write Apply one explicit natural-language change to the user's Carly preferences.
update_request required
string Natural language description of what preference to add, update, or remove
update_workflow Sensitive write workflows:write Update one owned workflow's name, trigger, schedule, timezone, status, or whole graph.
workflow_id required
integer ID of the workflow to update.
name
string New workflow name.
graph
object The whole new graph, not a patch.
trigger_type
string manual, cron, webhook, booking, phone, composio, pipedream, calendar_event, calendar_reminder, email_received, http_poll, tabular, form_submitted or crm_record.
trigger_spec
object Omit unless rescheduling: passing it replaces the live cron/trigger.
timezone
string IANA timezone.
confirm_trigger_change
boolean Confirm a deliberate replacement of an external trigger type.
status
string Optional new status: active or paused.
settings
object {key: value} for the graph's `inputs` (the user's 'Set up this workflow' fields), no graph needed.
update_workflow_step Sensitive write workflows:write Edit, insert, or remove one step of an owned workflow's graph without rewriting the rest.
workflow_id required
integer ID of the workflow whose step you want to patch.
node_id required
string ID of the node inside the active version's graph to patch.
code
string New source for a tool.run_python node: it reads rendered placeholders as `args` and assigns a `result` dict.
args
object Keys merged into a tool.run_python or tool.run_skill node's input.args (replace_args=true overwrites the dict, e.g.
instructions
string New instructions for an llm.call node, in full.
replace_args
boolean Replace input.args instead of merging into it.
upload_to_drive Sensitive write workspace:write Upload ownership-checked email attachments or file handles to Google Drive.
drive_account_id
integer Native account_id from list_integrations(query='Google Drive').
attachment_ids
integer[] Specific SesAttachment IDs (inbound email/chat attachments) to upload.
file_handle_tokens
string[] File-handle tokens (`fh_...`) to upload — for run_python outputs, Gmail/Outlook message attachments, and other files the agent has access to.
all
boolean When neither attachment_ids nor file_handle_tokens are given, upload all attachments on the current email.
folder_name
string Target Drive folder name.
naming_convention
string Naming template for uploaded files.
subfolder_by
string Automatically organize uploads into subfolders by 'sender', 'date', or 'subject'.
conflict_behavior
"replace" | "rename" | "fail" What to do if a file with the same target name already exists in the destination folder.
upload_to_onedrive Sensitive write workspace:write Upload ownership-checked email attachments or file handles to OneDrive.
onedrive_account_id
integer Native account_id from list_integrations(query='OneDrive').
attachment_ids
integer[] Specific SesAttachment IDs (inbound email/chat attachments) to upload.
file_handle_tokens
string[] File-handle tokens (`fh_...`) to upload — for run_python outputs and other files the agent has access to.
all
boolean When neither attachment_ids nor file_handle_tokens are given, upload all attachments on the current email.
folder_name
string Target OneDrive folder name or path (e.g.
naming_convention
string Naming template for uploaded files.
subfolder_by
string Automatically organize uploads into subfolders by 'sender', 'date', or 'subject'.
conflict_behavior
"replace" | "rename" | "fail" What to do if a file with the same target name already exists at the destination.
upsert_data_rows Write workspace:write Create or update rows in one owned data table, matched on its key field.
table required
string CRM table name, e.g.
rows
object[] Rows to create/update.
rows_file
string fh_ CSV/TSV/JSON handle to import directly.
upsert_rows Write contacts:write Create or update CRM records using explicit matching fields.
rows
object[] List of contact rows to create or update in ONE call.
rows_file
string fh_ file-handle token of a CSV or JSON file whose rows to upsert (e.g.

Support and security: support@calbotservice.com