Skip to content

fluent-booking/manage-booking

Act on an existing booking: reschedule, cancel, confirm, reject, complete, mark no-show, edit attendee details, or resend the confirmation email. reschedule, cancel and reject are destructive — call with dry_run first, then pass the returned confirm_token.

Ability

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

Input schema

ParameterTypeRequiredDescription
booking_idintegerYesThe booking to act on. Required.
actionstringYesreschedule needs start_time (and timezone). cancel and reject take an optional reason shown to the attendee. update_details needs fields. resend_email takes recipient. Required. One of: reschedule, cancel, confirm, reject, complete, no_show, update_details, resend_email.
start_timestringNoreschedule only. Local wall-clock start, Y-m-d H:i:s, read in the timezone parameter.
timezonestringNoIANA timezone for start_time and for the *_local times in the response.
host_idintegerNoreschedule only. Pin a host on a round-robin event.
reasonstringNoWhy. Stored on the booking and included in the cancellation, rejection or reschedule email.
fieldsobjectNoupdate_details only. Any of: first_name, last_name, email, phone, internal_note.
recipientstringNoresend_email only. Who to send the confirmation to. Defaults to guest. One of: guest, host.
refund_paymentbooleanNocancel and reject only. Refund through the original gateway. Default false — money never moves as a side effect.
send_notificationsbooleanNoDefault true. Set false to make the change without notifying anyone — email or SMS; reminders are still scheduled.
dry_runbooleanNoPreview the change and get a confirm_token without applying it.
confirm_tokenstringNoThe token from the dry run. Required for reschedule, cancel and reject.
idempotency_keystringNoPass a unique key so a retry after a timeout returns the first result instead of acting twice.

Example call

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "fluent-booking/manage-booking",
    "arguments": {
      "booking_id": 1,
      "action": "value"
    }
  }
}