Skip to content

Meeting routes: book, cancel, hold

The Meeting Verbs book, cancel, hold as api.sb routes, with inputs, result, refusals and an example.

Reference for Meeting, one group of Meeting routes.

Meeting.book

Book schedules a Meeting with a Contact at a time both calendars hold free. Verb page.

Text
POST /{namespace}/meetings/book

Body, as JSON: the inputs. Emits Meeting.booked.

Inputs

InputTypeRequiredDescription
contactContactrequiredWho to meet.
atdatetimerequiredWhen.

Returns

OutputTypeRequiredDescription
meetingMeetingrequiredThe booked Meeting.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/meetings/book \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contact":"contact_WsrosCQi6J","at":"2026-10-22T12:00:00Z"}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "meeting": {
    "$id": "https://api.sb/leaseline.app/meetings/meeting_TyEQGjh9uX",
    "$type": "Meeting",
    "at": "2026-10-22T12:00:00Z"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Meeting.book",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Meeting.cancel

Cancel ends a scheduled Meeting before it starts, frees its time, and applies the refund rule of any Offer it was paid through. Verb page.

Text
POST /{namespace}/meetings/{meeting}/cancel

Path: meeting. Body, as JSON: the other inputs. Emits Meeting.canceled.

Inputs

InputTypeRequiredDescription
meetingMeetingrequiredThe Meeting to cancel.
reasonstringWhy, as the attendees read it.

Returns

OutputTypeRequiredDescription
meetingMeetingrequiredThe canceled Meeting.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/meetings/meeting_TyEQGjh9uX/cancel \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "meeting": {
    "$id": "https://api.sb/leaseline.app/meetings/meeting_TyEQGjh9uX",
    "$type": "Meeting",
    "at": "2026-10-22T12:00:00Z"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Meeting.cancel",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Meeting.hold

Hold records that a Meeting took place, with its transcript and notes, so its Decisions and Tasks can follow. Verb page.

Text
POST /{namespace}/meetings/{meeting}/hold

Path: meeting. Body, as JSON: the other inputs. Emits Meeting.held.

Inputs

InputTypeRequiredDescription
meetingMeetingrequiredThe Meeting that took place.
transcripttextWhat was said.
notestextWhat was agreed, in brief.

Returns

OutputTypeRequiredDescription
meetingMeetingrequiredThe held Meeting.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/meetings/meeting_TyEQGjh9uX/hold \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "meeting": {
    "$id": "https://api.sb/leaseline.app/meetings/meeting_TyEQGjh9uX",
    "$type": "Meeting",
    "at": "2026-10-22T12:00:00Z"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Meeting.hold",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}