Menu

API reference · CRM

Sequence schedules

crm · sequence_schedules · 4 operations

GET/v1/crm/sequence-schedules

List the sending schedules of sequences

crm.sequences.schedules.list

ReadIdempotentSince 2026-11-01

Lists the organization's sending schedules for sequences, the default first and then by name: the IANA time zone and, for each weekday, whether it sends and between which hours (HH:mm), with who created it (created_by_id, created_by_name). A sequence with a schedule_id only sends inside those windows; without one it sends at any time. New sequences get the default. Paginated by cursor (limit up to 100, the default). Requires view access to the CRM.

Scope
crm:read
Permission
View the module
MCP tool
crm_sequences_schedules_listOn the full surface; on the compact one, mb_execute_operation with id: "crm.sequences.schedules.list".

Declared cost: up to 101 reads and 0 writes per call (they count against the daily quota).

Parameters

limitintegerqueryoptional

How many items this page brings at most (see the maximum and the default in the schema).

Default: 100

cursorstringqueryoptional

The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.

Response

dataarray<object>
has_moreboolean
next_cursorstring

Errors

Example

curl "https://api.mb-suite.com/v1/crm/sequence-schedules" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl "https://api.mb-suite.com/v1/crm/sequence-schedules" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/sequence-schedules

Create a sending schedule for sequences

crm.sequences.schedules.create

WriteSince 2026-11-01

Creates a sending schedule for sequences: a name, an IANA time zone (America/Argentina/Buenos_Aires…; an unknown zone is invalid_input) and optionally the 7 weekday windows (day, enabled, start_time and end_time as HH:mm; without them, Monday to Friday 09:00–18:00). is_default true makes it the organization's default and unsets the previous one. It is not assigned to any sequence: set schedule_id with crm.sequences.update. Returns schedule_id. Manager-tier only (manage_sequence_settings: owner, admin, crm_admin or sales_manager).

Scope
crm:write
Permission
Edit in the module · CRM action: manage_sequence_settings
MCP tool
crm_sequences_schedules_createOn the full surface; on the compact one, mb_execute_operation with id: "crm.sequences.schedules.create".

Declared cost: up to 5 reads and 3 writes per call (they count against the daily quota).

Parameters

namestringbodyrequired

The name the sequence settings show.

timezonestringbodyrequired

An IANA time zone (America/Argentina/Buenos_Aires, America/Mexico_City, UTC): the windows are read in it.

windowsarray<object>bodyoptional

Exactly 7 windows, one per day (monday to sunday): day, enabled, start_time and end_time as HH:mm. Without them, Monday to Friday 9:00 to 18:00.

is_defaultbooleanbodyoptional

Make it the organization's default (new sequences take it; the previous default stops being one).

Response

schedule_idstring

Errors

Example

curl -X POST "https://api.mb-suite.com/v1/crm/sequence-schedules" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "timezone": "TIMEZONE"
}'

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X POST "https://api.mb-suite.com/v1/crm/sequence-schedules" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "timezone": "TIMEZONE"
}'
PATCH/v1/crm/sequence-schedules/{schedule_id}

Update a sending schedule

crm.sequences.schedules.update

WriteIdempotentSince 2026-11-01

Updates a sending schedule; send at least one key in updates (name, timezone, windows with the 7 weekdays, is_default). Every sequence that uses it sends inside the new windows from the engine's next run. is_default true moves the default here. Not found (sequence_schedule_not_found) if the id does not exist. Manager-tier only (manage_sequence_settings).

Scope
crm:write
Permission
Edit in the module · CRM action: manage_sequence_settings
MCP tool
crm_sequences_schedules_updateOn the full surface; on the compact one, mb_execute_operation with id: "crm.sequences.schedules.update".

Declared cost: up to 5 reads and 3 writes per call (they count against the daily quota).

Parameters

schedule_idstringpathrequired

The sending schedule: an id from crm.sequences.schedules.list.

updatesobjectbodyrequired

What changes (at least one key): name, timezone, windows (the 7 days, replaced as a whole), is_default.

Response

oktrue

Errors

Example

curl -X PATCH "https://api.mb-suite.com/v1/crm/sequence-schedules/{schedule_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X PATCH "https://api.mb-suite.com/v1/crm/sequence-schedules/{schedule_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'
DELETE/v1/crm/sequence-schedules/{schedule_id}

Delete a sending schedule

crm.sequences.schedules.delete

IrreversibleSince 2026-11-01

Deletes a sending schedule; the sequences that used it are left without a schedule and send at any time (the result says how many). It does not go to the trash. Outside the screen it requires a dry run (which lists the affected sequences) and a confirm_token, and a credential that allows deleting. Not found (sequence_schedule_not_found) if the id does not exist. Manager-tier only (manage_sequence_settings).

Needs confirmation: first dry_run: true (preview and confirm_token, valid 10 minutes and for one run), then the same body with confirm_token. In a few operations only with certain data: the description says when. Why and how: Dry run and confirm_token.

Scope
crm:write and “Allow deletions” (crm:delete in OAuth)
Permission
Edit in the module · CRM action: manage_sequence_settings
MCP tool
crm_sequences_schedules_deleteOn the full surface; on the compact one, mb_execute_operation with id: "crm.sequences.schedules.delete".

Declared cost: up to 101 reads and 101 writes per call (they count against the daily quota).

Parameters

schedule_idstringpathrequired

The sending schedule: an id from crm.sequences.schedules.list.

Response

detached_from_sequencesnumber

Errors

Example

curl -X DELETE "https://api.mb-suite.com/v1/crm/sequence-schedules/{schedule_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X DELETE "https://api.mb-suite.com/v1/crm/sequence-schedules/{schedule_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'