Menú

Referencia de la API · CRM

Calendario

crm · calendar · 7 operaciones

GET/v1/crm/calendar/vendors

List the sellers whose calendar you can see

crm.calendar.vendors.list

LecturaIdempotenteDesde 2026-11-01

Lists the sellers of the organization with a Google or Outlook calendar connected that the caller can see (their own; owners and admins see all; colleagues depending on each seller's sharing: open, private or custom), with providers, sharing settings, overlay color, the last good sync, the state of the sync in words (sync_status ok, failing, stale or never; sync_status_text) and the raw error of a failing one. Their user_id is the vendor_user_id of the calendar operations. Read-only.

Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_calendar_vendors_listEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.calendar.vendors.list".

Costo declarado: hasta 400 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

Sin parámetros.

Respuesta

dataarray<object>

Errores

Ejemplo

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

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl "https://api.mb-suite.com/v1/crm/calendar/vendors" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/crm/calendar/events

List calendar events and bookings in a time window

crm.calendar.events.list

LecturaIdempotenteCorreo y calendario conectadosDesde 2026-11-01

For API keys and third-party apps this operation exists only when the organization's owner allows connected calendar content and the credential was granted it; even then it reads only the calendar of the user the credential acts as (other vendor_user_ids are not found) and returns only the events whose organizer or attendees include a CRM person or company (plus the CRM bookings), never the whole calendar; busy-only (masked) events are omitted for them. Returns the events of one or more sellers' Google or Outlook calendars (mirrored in MB Suite) and their confirmed CRM bookings between start_ms and end_ms (ms UTC, at most 62 days; default seller: the caller). Calendars a seller does not share with the caller are skipped; when they share only busy/free, their events come masked (summary '__masked__', masked: true, no attendees). Bookings come in their own list (their calendar event is not repeated) and never include the booker's cancel/reschedule tokens; a booking's booker_email is an empty string when an AI Setter booked without the person's email (reach them by booker_phone).

Solo si la organización lo permite y la credencial lo trae concedido; devuelve solo lo vinculado al CRM de la casilla propia. Correo y calendario conectados

Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_calendar_events_listEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.calendar.events.list".

Costo declarado: hasta 2000 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

start_msintegerqueryrequerido

Window start, epoch ms.

end_msintegerqueryrequerido

Window end, epoch ms (at most 62 days after start_ms).

vendor_user_idsarray<string>queryopcional

Sellers (user ids from crm.calendar.vendors.list), up to 50; default: the caller.

Respuesta

eventsarray<object>
bookingsarray<object>

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/calendar/events?start_ms=0&end_ms=0" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl "https://api.mb-suite.com/v1/crm/calendar/events?start_ms=0&end_ms=0" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/calendar/events

Create a calendar event or schedule a meeting

crm.calendar.events.create

EscrituraDesde 2026-11-01

Creates an event in a seller's Google or Outlook calendar (default: the caller's; another seller's only for an owner or admin, and only if they allow admin edits) with optional location, attendees (they get the invitation) and a Meet/Teams link (with_meet). With meeting it schedules a meeting with a CRM record instead: the event goes to the caller's own calendar with a video link by default, a 'meeting' activity is logged on the deal, person, company or prospect (and the records linked to it) and the deals' last activity moves. Needs a connected calendar (integration_not_connected otherwise); when the provider does not confirm the creation it answers external_outcome_unknown (the event may exist: look at the calendar before creating it again). Returns the event_id that crm.calendar.events.update and delete take. Requires manage_own_calendar_events / manage_any_calendar_events, or create_activity for a meeting.

Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_calendar_events_createEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.calendar.events.create".
Eventos que puede emitir
crm.activity.created

Costo declarado: hasta 20 lecturas y 10 escrituras por llamada (cuentan en el cupo diario). Toca una plataforma externa (google): cuenta en el cupo de operaciones externas.

Parámetros

summarystringcuerporequerido

The event's title (a meeting's, up to 300 characters).

start_msintegercuerporequerido

Start, epoch ms.

end_msintegercuerporequerido

End, epoch ms.

time_zonestringcuerporequerido

IANA time zone of the event (America/Argentina/Buenos_Aires).

vendor_user_idstringcuerpoopcional

The seller whose calendar it is (user_id from crm.calendar.vendors.list); default: the caller. A meeting always goes to the caller's own calendar.

descriptionstringcuerpoopcional

The event's description.

locationstringcuerpoopcional

Where it is.

attendeesarray<object>cuerpoopcional

Up to 50 attendees: each one gets the invitation.

with_meetbooleancuerpoopcional

Add a Google Meet / Teams link (default: no for an event, yes for a meeting).

providerenumcuerpoopcional

google or microsoft (Outlook): only when the seller has both connected; default: the one of the mirrored event or the seller's connection.

Valores: google, microsoft

meetingobjectcuerpoopcional

Schedule a meeting with a CRM record: besides the event, a 'meeting' activity is logged on it.

Respuesta

event_idstring
html_linkstring
meet_linkstring
activity_idstring

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/calendar/events" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "summary": "SUMMARY",
  "start_ms": 0,
  "end_ms": 0,
  "time_zone": "TIME_ZONE",
  "dry_run": true
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar. En la práctica esta operación no se simula (toca otra plataforma): responde 409 sandbox_external_unavailable.

PATCH/v1/crm/calendar/events/{event_id}

Move, resize or edit a calendar event

crm.calendar.events.update

EscrituraDesde 2026-11-01

Updates an event of a seller's Google or Outlook calendar (default: the caller's), by its event_id (the one crm.calendar.events.create returned, or, for a credential with connected calendar content, the one of crm.calendar.events.list). start_ms + end_ms move it (it checks free/busy first and answers slot_conflict on an overlap, unless skip_conflict_check); end_ms alone changes its duration; summary, description, location or attendees edit its details. time_zone is required when the time changes. A booking's event is moved with crm.bookings.reschedule instead. Another seller's calendar only for an owner or admin, and only if they allow admin edits. Requires manage_own_calendar_events / manage_any_calendar_events.

Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_calendar_events_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.calendar.events.update".

Costo declarado: hasta 6 lecturas y 1 escrituras por llamada (cuentan en el cupo diario). Toca una plataforma externa (google): cuenta en el cupo de operaciones externas.

Parámetros

event_idstringrutarequerido

The event's id in Google or Outlook: event_id of crm.calendar.events.create, or id of crm.calendar.events.list (when the credential has connected content).

vendor_user_idstringcuerpoopcional

The seller whose calendar it is (user_id from crm.calendar.vendors.list); default: the caller.

providerenumcuerpoopcional

google or microsoft (Outlook): only when the seller has both connected; default: the one of the mirrored event or the seller's connection.

Valores: google, microsoft

start_msintegercuerpoopcional

New start, epoch ms (with end_ms: it moves the event).

end_msintegercuerpoopcional

New end, epoch ms (alone: it changes the duration).

time_zonestringcuerpoopcional

IANA time zone; required when the time changes.

skip_conflict_checkbooleancuerpoopcional

Move it without checking overlaps with other events (default: answers slot_conflict).

summarystringcuerpoopcional

New title.

descriptionstringcuerpoopcional

New description.

locationstringcuerpoopcional

New location.

attendeesarray<object>cuerpoopcional

The whole new list of attendees.

Respuesta

oktrue

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/crm/calendar/events/{event_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar. En la práctica esta operación no se simula (toca otra plataforma): responde 409 sandbox_external_unavailable.

DELETE/v1/crm/calendar/events/{event_id}

Delete a calendar event

crm.calendar.events.delete

IrreversibleDesde 2026-11-01

Deletes an event from a seller's Google or Outlook calendar (default: the caller's) and its mirror in MB Suite, by its event_id (from crm.calendar.events.create or, with connected calendar content, crm.calendar.events.list); the attendees get the provider's cancellation. The dry run says whether the event is in MB Suite's mirror (validated false when it is not: it may not exist). A copy (title, time, attendees) stays 30 days in the trash for reference, without automatic restore: the event no longer exists in the provider. To cancel a booking use crm.bookings.cancel. Another seller's calendar only for an owner or admin, and only if they allow admin edits. Requires manage_own_calendar_events / manage_any_calendar_events.

Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.

Alcance
crm:write y «Permitir eliminar» (crm:delete en OAuth)
Permiso
Editar en el módulo
Tool del MCP
crm_calendar_events_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.calendar.events.delete".

Costo declarado: hasta 6 lecturas y 2 escrituras por llamada (cuentan en el cupo diario). Toca una plataforma externa (google): cuenta en el cupo de operaciones externas.

Parámetros

event_idstringrutarequerido

The event's id in Google or Outlook: event_id of crm.calendar.events.create, or id of crm.calendar.events.list (when the credential has connected content).

vendor_user_idstringcuerpoopcional

The seller whose calendar it is (user_id from crm.calendar.vendors.list); default: the caller.

providerenumcuerpoopcional

google or microsoft (Outlook): only when the seller has both connected; default: the one of the mirrored event or the seller's connection.

Valores: google, microsoft

Respuesta

oktrue
trash_item_idstring

The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.

trash_item_idsarray<string>

Only when the deletion left more than one copy: all of them, the first being trash_item_id.

trash_expires_atnumber

When the copy leaves the trash for good (epoch ms): 30 days after the deletion.

Errores

Ejemplo

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

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar. En la práctica esta operación no se simula (toca otra plataforma): responde 409 sandbox_external_unavailable.

PATCH/v1/crm/calendar/sharing/{vendor_user_id}

Change who sees a seller's calendar

crm.calendar.sharing.update

EscrituraIdempotenteDesde 2026-11-01

Updates a seller's calendar sharing inside MB Suite: who sees it (view_mode open, private, or custom with allowed_user_ids), how much colleagues see (view_details_mode all, crm_related or busy_only), whether owners and admins may edit it (allow_admin_edit) and its overlay color. Fields left out keep their value. The seller and allowed_user_ids must be people with access to the organization (vendor_not_found, recipient_without_access). Own calendar: requires manage_own_booking; another seller's: owner, admin or CRM admin only.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_calendar_sharing_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.calendar.sharing.update".

Costo declarado: hasta 1 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).

Parámetros

vendor_user_idstringrutarequerido

The seller whose calendar sharing changes: a person with access to the organization (crm.calendar.vendors.list or crm.team.list).

view_modeenumcuerpoopcional

Who sees it: open (every colleague), private (only the seller, owners and admins) or custom (allowed_user_ids).

Valores: open, private, custom

allowed_user_idsarray<string>cuerpoopcional

With view_mode custom: who sees it, up to 200 people with access to the organization.

view_details_modeenumcuerpoopcional

How much colleagues see: all, crm_related (only events with CRM contacts) or busy_only (free/busy).

Valores: all, crm_related, busy_only

allow_admin_editbooleancuerpoopcional

Whether owners and admins may edit this calendar.

calendar_colorstringcuerpoopcional

Overlay color in the shared calendar, #rrggbb.

Respuesta

oktrue

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/crm/calendar/sharing/{vendor_user_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X PATCH "https://api.mb-suite.com/v1/crm/calendar/sharing/{vendor_user_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/calendar/sync

Sync a seller's calendar now

crm.calendar.sync

EscrituraDesde 2026-11-01

Pulls the latest changes of a seller's connected Google and/or Outlook calendars into MB Suite right away (the mirror also syncs by itself every few minutes). Anyone who can see that calendar may run it; there is a short cooldown between runs (cooldown_active with retry_after). Returns the events upserted and deleted; error carries the first provider failure, if any, while the other providers still applied.

Alcance
crm:write
Permiso
Ver el módulo
Tool del MCP
crm_calendar_syncEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.calendar.sync".

Costo declarado: hasta 200 lecturas y 500 escrituras por llamada (cuentan en el cupo diario). Toca una plataforma externa (google): cuenta en el cupo de operaciones externas.

Parámetros

vendor_user_idstringcuerporequerido

The seller whose calendar syncs (user_id from crm.calendar.vendors.list).

Respuesta

upsertednumber
deletednumber
providersarray<enum>

Valores: google, microsoft

errorstring

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/calendar/sync" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "vendor_user_id": "VENDOR_USER_ID"
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar. En la práctica esta operación no se simula (toca otra plataforma): responde 409 sandbox_external_unavailable.