Skip to content

fluent-booking/create-booking

Book a slot on an attendee's behalf. Availability is re-checked at execute time and everyone is emailed as they would be for a self-service booking. Call with dry_run first, then pass back the confirm_token AND the same parameters.

Ability

  • Kind: Tool
  • Toolset: core
  • Edition: Core
  • Mode: destructive
  • Permission callback: PermissionGate::bookingWriteGate()
  • Handler: BookingWriteTools::createBooking()
  • Source: fluent-booking/app/Modules/MCP/Tools/BookingWriteTools.php:58

Input schema

ParameterTypeRequiredDescription
event_idintegerYesThe event type to book. Required.
start_timestringYesLocal wall-clock start, Y-m-d H:i:s, read in the timezone parameter. No offset or Z suffix. Required.
timezonestringNoIANA timezone the attendee is booking in. Defaults to the site timezone.
namestringYesAttendee full name. Required.
emailstringYesAttendee email. Required.
phonestringNo
messagestringNoThe attendee's note, shown to the host.
internal_notestringNoHost-only note. Never shown to the attendee.
durationintegerNoMinutes, when the event type offers a choice. Defaults to its default duration.
host_idintegerNoPin a specific host. Round-robin events pick one automatically when this is omitted.
location_typestringNoOnly when the event type offers several. get-event-types lists them.
location_descriptionstringNoRequired for phone_guest and in_person_guest: the attendee's number or address.
custom_fieldsobjectNoAnswers to the event type's booking fields, keyed by field name.
guestsarrayNoAdditional guests. Email strings, or {name, email} objects — group events seat each guest separately and need a name.
send_notificationsbooleanNoDefault true. Set false to create the booking without notifying anyone — email or SMS; reminders are still scheduled.
dry_runbooleanNoPreview the booking and get a confirm_token without creating anything.
confirm_tokenstringNoThe token from the dry run. Required to actually create the booking.
idempotency_keystringNoA unique key, so a retry after a timeout returns the first result rather than booking twice.

Example call

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "fluent-booking/create-booking",
    "arguments": {
      "event_id": 1,
      "start_time": "value",
      "name": "value",
      "email": "value"
    }
  }
}