BlueSuite Developers
MCPTool reference

Events

BlueSuite MCP tools for events

See connection and authentication and workflow rules before calling these tools.

Related REST API and behavior.

list_events

List events (appointments, tasks, visits) with optional pagination, search, and filters

Parameters

FieldType / accepted valuesRequiredDetails
pageintegerNoPage number (default: 1)
per_pageintegerNoResults per page (default: 25) minimum: 1. maximum: 100.
searchstringNoSearch events
sort_by"id", "name", "status", "type", "start_date", "end_date", "created_at", "modified_at"NoField to sort by. Unknown values fall back to the default sort.
sort_direction"asc", "desc"NoSort direction
start_datestringNoFilter: start date (YYYY-MM-DD)
end_dateJSON valueNoFilter: end date (YYYY-MM-DD)
job_idintegerNoFilter by job ID
type"appointment", "task", "event"NoFilter by event type
assignee_idsarray of stringNoFilter by assignee UUIDs. Use list_users to resolve names to UUIDs.
statusarray of "pending", "in_progress", "scheduled", "cancelled", "missed", "completed"NoFilter by one or more statuses.
request_idJSON valueNoFilter by request ID

Result

FieldType / accepted valuesRequiredDetails
dataarray of objectYesThe matching records for this page.
paginationobjectNoHow many more pages of results exist. Absent when the API returned an unpaged result.
pagination.pageintegerWhen parent suppliedCurrent page number, 1-based.
pagination.per_pageintegerWhen parent suppliedNumber of results per page.
pagination.total_pagesintegerWhen parent suppliedTotal number of pages available.

create_event

Create a new event. Three kinds: an APPOINTMENT is a visit for an existing job or request, a TASK is a to-do on the calendar, an EVENT is a standalone calendar entry. Recurrence (recurrence_type="recurring") applies to tasks and events only, appointments cannot repeat on their own. For repeating visits, put the job on a recurring schedule with setup_recurring_job, which also sets the job type and billing settings.

Parameters

FieldType / accepted valuesRequiredDetails
namestringNoEvent name/title
descriptionstringNoEvent description
job_idintegerNoAssociated job ID
request_idJSON valueNoAssociated request ID
start_datestringYesStart date (YYYY-MM-DD)
end_dateJSON valueYesEnd date (YYYY-MM-DD)
start_timestringNoStart time (HH:MM) in workspace timezone. Required for timed events; omit only for all_day=true or an update retaining the saved time.
end_timeJSON valueNoEnd time (HH:MM) in workspace timezone, after the start. Required for timed events; omit only for all_day=true or an update retaining the saved time.
all_daybooleanNoWhether this is an all-day event (default: false)
multi_dayJSON valueNoWhether this spans multiple days (default: false)
type"appointment", "task", "event"NoEvent type (default: event)
status"scheduled", "cancelled", "missed", "completed"NoEvent status (default: scheduled)
is_flexibleJSON valueNoWhether the visit can be moved within the day by scheduling.
duration_minutesintegerNoExpected length of the visit in minutes.
recurrence_type"single", "recurring"NoSet to 'recurring' for a repeating task or standalone event. Default: 'single'. NOT valid for type='appointment', repeating visits come from setup_recurring_job. The repeat_* fields below only apply when this is 'recurring'.
repeat_frequencyJSON valueNoInterval between occurrences, used when repeat_frequency_unit is 'custom' (e.g. 2 with a custom weekly unit means every 2 weeks).
repeat_frequency_unit"daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences"NoHow often it repeats: daily, weekly, monthly, yearly, or 'custom' to combine repeat_frequency with repeat_frequency_unit_custom. Default: weekly.
repeat_frequency_unit_custom"daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences"NoThe unit the custom interval counts in. Only used when repeat_frequency_unit is 'custom'.
repeat_frequency_scheduleobjectNoWhich days a custom weekly or monthly pattern lands on. Required for those patterns.
repeat_frequency_schedule.daysarray of JSON valueWhen parent suppliedDays to repeat on: 1-7 for weekdays, 1-31 for days of the month.
repeat_frequency_schedule.type"weekDays", "monthWeekDays", "monthDays"When parent supplied
repeat_durationJSON valueNoHow long the series runs. With repeat_duration_unit='occurrences' this is a visit count. Required unless the series repeats forever.
repeat_duration_unit"daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences"NoHow the series ends: 'forever' (no end), 'occurrences' (a fixed number of visits, set in repeat_duration), or a time unit. Default: forever.
assignee_idsarray of stringNoArray of assignee UUIDs. Use list_users to resolve names.

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

get_event

Get a single event by ID with expanded details

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesEvent ID

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

update_event

Update an existing event. For an occurrence of a recurring appointment, set update_scope to say whether the change applies to just this visit, all future visits, or should rebuild the upcoming schedule.

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesEvent ID
namestringNoEvent name/title
descriptionstringNoEvent description
job_idJSON valueNoAssociated job ID
request_idJSON valueNoAssociated request ID
start_datestringNoStart date (YYYY-MM-DD)
end_dateJSON valueNoEnd date (YYYY-MM-DD)
start_timestringNoStart time (HH:MM) in workspace timezone. Required for timed events; omit only for all_day=true or an update retaining the saved time.
end_timeJSON valueNoEnd time (HH:MM) in workspace timezone, after the start. Required for timed events; omit only for all_day=true or an update retaining the saved time.
all_daybooleanNoWhether this is an all-day event
multi_dayJSON valueNoWhether this spans multiple days
type"appointment", "task", "event"NoEvent type
status"scheduled", "cancelled", "missed", "completed"NoEvent status
is_flexibleJSON valueNoWhether the visit can be moved within the day by scheduling.
duration_minutesintegerNoExpected length of the visit in minutes.
recurrence_type"single", "recurring"NoSet to 'recurring' for a repeating task or standalone event. Default: 'single'. NOT valid for type='appointment', repeating visits come from setup_recurring_job. The repeat_* fields below only apply when this is 'recurring'.
repeat_frequencyJSON valueNoInterval between occurrences, used when repeat_frequency_unit is 'custom' (e.g. 2 with a custom weekly unit means every 2 weeks).
repeat_frequency_unit"daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences"NoHow often it repeats: daily, weekly, monthly, yearly, or 'custom' to combine repeat_frequency with repeat_frequency_unit_custom. Default: weekly.
repeat_frequency_unit_custom"daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences"NoThe unit the custom interval counts in. Only used when repeat_frequency_unit is 'custom'.
repeat_frequency_scheduleobjectNoWhich days a custom weekly or monthly pattern lands on. Required for those patterns.
repeat_frequency_schedule.daysarray of JSON valueWhen parent suppliedDays to repeat on: 1-7 for weekdays, 1-31 for days of the month.
repeat_frequency_schedule.type"weekDays", "monthWeekDays", "monthDays"When parent supplied
repeat_durationJSON valueNoHow long the series runs. With repeat_duration_unit='occurrences' this is a visit count. Required unless the series repeats forever.
repeat_duration_unit"daily", "weekly", "monthly", "yearly", "custom", "forever", "occurrences"NoHow the series ends: 'forever' (no end), 'occurrences' (a fixed number of visits, set in repeat_duration), or a time unit. Default: forever.
update_scope"single", "all", "recreate"NoWhich occurrences of a recurring appointment this update touches. 'single' changes only this visit, 'all' applies to this and future visits, 'recreate' rebuilds the upcoming schedule after a pattern change. Default: single. Ask the user which they mean rather than guessing.
assignee_idsarray of stringNoArray of assignee UUIDs. Use list_users to resolve names.

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

set_visit_line_items

Set the line items for ONE visit of a job, so that visit bills differently from the rest, the parts used on this trip, an extra callout. When the appointment is completed, its invoice is built from these instead of the job's line items; discount, tax and deposit still come from the job. Send line_items as null to clear the override and bill from the job again. This affects only the single visit, never the whole recurring schedule.

Parameters

FieldType / accepted valuesRequiredDetails
event_idintegerYesThe appointment (visit) to price.
line_itemsarray of object or object or nullYesLine items for this visit only, or null to go back to billing from the job.

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

delete_event

Delete an event by ID

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesEvent ID

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

update_event_status

Update only the status of an event. Use this instead of update_event when changing status, as status transitions may trigger business logic.

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesEvent ID
status"scheduled", "cancelled", "missed", "completed"YesNew status

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

The downloadable tool schemas include the full input and output contracts. Tables describe schema-level required fields; cross-field rules still apply.

On this page