Skip to content
The Bookwise guidev1.1.0Read as Markdown
Documentation menu
Docs/Owner operations
Owner operations

mark_booking_outcome

OWNER ONLY. Mark a confirmed booking completed after its scheduled end or no_show after its scheduled start. Updates customer history and triggers the existing completion workflow. Requires ownership and a unique idempotencyKey.

Scope & access

Directory + businessWrites dataOwner session required

Requires a valid owner session and ownership of businessId. Customer booking tokens do not authorize this operation.

This tool advertises idempotent behavior. If an idempotencyKey is specified, reuse it with identical arguments only when retrying that same intended action.

Parameters

These are the directory endpoint parameters. Business endpoints scope public discovery to the published business; owner calls still require businessId. Inspect tools/list on your endpoint for the exact schema.

businessIdRequired
string

Published business ID from search_businesses, or the business's booking-page slug (e.g. "studio-nine"); owner calls may also use the business ID shown in the dashboard.

bookingIdRequired
string

Parent booking ID from create_hold (holdId), confirm_booking, or list_bookings. Never pass a child allocation ID.

outcomeRequired
"completed" | "no_show"

completed after service ended; no_show after the scheduled start when the customer did not attend.

idempotencyKeyRequired
string

Generate a UUID per intended mutation. Reuse the same key and identical parameters only when retrying that action.

Example call

Pass this object to the MCP client's callTool method. Replace placeholders with returned IDs, saved credentials and the customer's details; use future dates appropriate to their request.

mark_booking_outcome · MCP client arguments
json
{
  "name": "mark_booking_outcome",
  "arguments": {
    "businessId": "<businessId>",
    "bookingId": "<bookingId>",
    "outcome": "completed",
    "idempotencyKey": "<new-UUID-for-this-action>"
  }
}

JSON schemas

Nested fields, formats, enums and constraints are included in the complete schemas. Successful data is returned in structuredContent. SDK input validation and domain errors use different error shapes.

Input schemaJSON Schema
Input JSON Schema
json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "businessId": {
      "type": "string",
      "minLength": 1,
      "description": "Published business ID from search_businesses, or the business's booking-page slug (e.g. \"studio-nine\"); owner calls may also use the business ID shown in the dashboard."
    },
    "bookingId": {
      "type": "string",
      "minLength": 1,
      "description": "Parent booking ID from create_hold (holdId), confirm_booking, or list_bookings. Never pass a child allocation ID."
    },
    "outcome": {
      "type": "string",
      "enum": [
        "completed",
        "no_show"
      ],
      "description": "completed after service ended; no_show after the scheduled start when the customer did not attend."
    },
    "idempotencyKey": {
      "type": "string",
      "minLength": 8,
      "maxLength": 200,
      "description": "Generate a UUID per intended mutation. Reuse the same key and identical parameters only when retrying that action."
    }
  },
  "required": [
    "businessId",
    "bookingId",
    "outcome",
    "idempotencyKey"
  ]
}
Output schemaJSON Schema
Output JSON Schema
json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "bookingId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "held",
        "pending_verification",
        "pending_payment",
        "pending_approval",
        "confirmed",
        "cancelled",
        "expired",
        "no_show",
        "completed"
      ]
    }
  },
  "required": [
    "bookingId",
    "status"
  ],
  "additionalProperties": false
}
Behavior annotationsMCP
Tool annotations
json
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}

Errors & next steps

Check isError before reading a success response. Follow nextStep where supplied, and never treat a pending booking as confirmed. See Errors and retries and the booking lifecycle for recovery paths.

Back to all tools