Tools · Bookings and Scheduling
MCP tools for Bookings (rooms, desks and stations) and Scheduling (people's hours): finding what is free, booking with a cost in credits, rescheduling, canceling, no-shows, calendar invite, rooms, blocks, price bands and agenda approval. Minimum role and recipes.
The Bookings module and Scheduling through the assistant: finding free rooms and times (with the cost in credits and your balance), booking, rescheduling, canceling, marking a no-show, downloading the calendar invite, setting up rooms and desks, blocking times, setting prices and approving member agendas. Both modules use the same booking tools; the Scheduling ones are the last five.
Each tool carries a badge: Read-only changes nothing, Changes creates or changes something right away, and Asks to confirm only acts after your yes to a summary. See Money and confirmation.
In short
| Tool | What it does | Minimum role | Type |
|---|---|---|---|
search_booking_rooms | Finds what fits the request, with cost and balance | Anyone who sees the space | Read-only |
check_availability | The free and taken times of a day | Anyone who sees the space | Read-only |
list_booking_resources | The rooms, desks, stations and agendas | Anyone who sees the space | Read-only |
list_booking_amenities | The amenities catalog | Any | Read-only |
get_booking_resource | One room with the rules already resolved | Anyone who sees the space | Read-only |
create_booking | Books for you and debits your credits | Any | Changes |
create_booking_for_member | Books for a member, debiting their credits | Moderator (or finance) | Asks to confirm |
list_my_bookings | Your bookings (or the ones booked with you) | Any | Read-only |
list_bookings | All the community's bookings | Moderator (or finance) | Read-only |
get_booking | One booking | Booker, host and team | Read-only |
cancel_booking | Cancels and refunds according to the rule | Booker, host and team | Asks to confirm |
reschedule_booking | Changes the time and settles the credits | Booker, host and team | Asks to confirm |
mark_booking_no_show | Marks the no-show | Team and host | Changes |
get_booking_ics | The calendar invite (.ics) | Booker, host and team | Read-only |
create_booking_resource | Creates a room, desk or agenda | Admin (rooms) | Changes |
update_booking_resource | Edits, replaces or removes the photo | Admin (rooms) | Changes |
delete_booking_resource | Deletes (canceling upcoming bookings) | Admin | Asks to confirm |
list_availability_exceptions | Blocks and extra hours | Anyone who sees the space | Read-only |
create_availability_exception | Blocks or opens a period | Team (rooms) | Changes |
cancel_bookings_for_closure | Blocks, canceling the period's bookings | Team (rooms) | Asks to confirm |
delete_availability_exception | Removes a block or extra hours | Team (rooms) | Asks to confirm |
list_price_rules | A room's price bands | Admin | Read-only |
create_price_rule | Creates a price band | Admin | Changes |
update_price_rule | Edits a band | Admin | Changes |
delete_price_rule | Removes a band | Admin | Asks to confirm |
get_scheduling_config | The Scheduling rules and your agendas | Anyone who sees the space | Read-only |
search_scheduling_hosts | People with free time | Anyone who sees the space | Read-only |
get_scheduling_host | A person's page, with the grid | Anyone who sees the space | Read-only |
list_pending_scheduling_offers | Agendas waiting for approval | Admin | Read-only |
set_booking_resource_listing | Approves or takes an agenda off the list | Admin | Changes |
"Team" is the owner, the admin, the moderator and finance. The roles are the routes' roles: the assistant never does more than the connected person could do on screen.
The spaces are created with create_space and module: "bookings" or "scheduling"; update_space changes only what you send. The bookings argument carries every room's defaults (slot_minutes, min_duration_minutes, max_duration_minutes, min_notice_minutes, max_advance_days, show_booker_name and opening_hours, with the keys mon to sun and HH:MM periods); scheduling carries the same plus offerers (ADMINS, TEAM or MEMBERS), allow_paid_slots and require_listing_approval.
Times. The times you send are always on the community's clock ("2026-11-03T14:00", no suffix). Costs. Booking, rescheduling and canceling touch the credits: the assistant states the cost and the balance before booking. Without enough credits, the response carries required, balance and shortfall; with the time taken, it carries the next free times.
Search and look up
search_booking_rooms
Read-only
What fits the request. Give an exact start (starts_at) or a window in the day (date with from and to), plus duration, capacity and amenities. Returns only the resources that fit, with the free start times, the cost in credits, canAfford and your balance, sorted by earliest and then by smallest capacity; when nothing fits, next_slots lists the next times for the same request.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | The Bookings or Scheduling space |
starts_at | date and time | No | Exact start, local time |
date, from, to | day YYYY-MM-DD, HH:MM | No | A search window |
duration_minutes | number, 5 or more | No | Duration |
capacity | number | No | How many people must fit |
amenities | list of keys | No | All are required (from list_booking_amenities) |
kind | ROOM, DESK, STATION, OTHER or PERSON | No | The type |
host_profile_id | id | No | Only this person's agendas |
Ask like this: "I need a room for 6 people tomorrow from 2 to 4 PM, with a projector."
check_availability
Read-only
Free and taken. The times of a day (or of up to 7), calculated from the weekly hours, the blocks and the bookings, each free one with creditCost and canAfford. It never says who booked, unless the space shows the name.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
date | YYYY-MM-DD | No | The day (default: today) |
days | 1 to 7 | No | How many days |
resource_id, host_profile_id | id | No | Just one room, or just one person |
duration_minutes | number | No | Default: the shortest booking |
list_booking_resources
Read-only
The rooms. Rooms, desks, stations and agendas of the space. A member sees only the listed, active ones open for booking; the team sees them all. Parameters: space (required), kind, host_profile_id, page, limit.
list_booking_amenities
Read-only
The amenities catalog the community accepts (projector, TV, whiteboard, Wi-Fi…). A key outside the catalog is refused. No parameters.
get_booking_resource
Read-only
One room with the effective rules already combined with the space's defaults (hours, slot, duration limits, notice, cancellation window). Parameter: resource_id.
Book
create_booking
Changes
Book for yourself. Books right away (already confirmed) and debits your credits in the same step. Before that, the assistant states the cost and the balance. To book for another member, use create_booking_for_member. The courtesy (waive_credits with waive_reason) is only for the owner and the admin. The confirmation email with the calendar invite goes into the queue. Returns creditCost and balanceAfter.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_id | id | Yes | From list_booking_resources or the search |
starts_at | date and time | Yes | Local time, e.g. 2026-11-03T14:00 |
ends_at or duration_minutes | date and time or number | One of the two | Default: the shortest booking |
attendee_count | number | No | How many people |
title, notes | text | No | Purpose and notes |
waive_credits, waive_reason | true or false, text | No | Courtesy, owner and admin only |
Ask like this: "Book Room 2 tomorrow from 2 to 4 PM for 6 people."
create_booking_for_member
Asks to confirm
Book for a member. Debits their credits (or is free as a courtesy, owner and admin only, with waive_reason) and they get the email with the invite. Before acting, it shows a summary with the member and their balance and only repeats the call after your yes. Same parameters and same responses as create_booking, plus profile_id. Minimum role: moderator (or finance).
| Parameter | Type | Required | Description |
|---|---|---|---|
profile_id | id | Yes | The member (list_members) |
Ask like this: "Book Room 1 on Friday at 10 AM for Maria."
list_my_bookings
Read-only
Your bookings, or, with as_host, the ones people made on the agenda you offer. Filters: space, resource_id, status (list, e.g. CONFIRMED,NO_SHOW), from, to, order, page, limit. Each one carries canCancel.
list_bookings
Read-only
All the community's bookings, with the same filters. Minimum role: moderator (or finance).
get_booking
Read-only
One booking: room, person, times, status, cost in credits, whether it was a courtesy or a late cancellation, and what whoever asks can do. Only the booker, the host and the team; anyone else gets 404. Parameter: booking_id.
Change a booking
cancel_booking
Asks to confirm
Cancel. When the booker cancels after the window (24 h by default), the cancellation is marked as late and may lose the credits; within the window, or when the team or the host cancels, the refund is in full. The person gets the email and the event is canceled in their calendar. A booking that has already started can't be canceled (use the no-show). Shows a summary and only acts after your yes.
| Parameter | Type | Required | Description |
|---|---|---|---|
booking_id | id | Yes | |
reason | text | No | Goes in the email |
reschedule_booking
Asks to confirm
Reschedule. Changes the time in the same room (what you don't send stays, and the length is kept). Touches the credits: a pricier time debits the difference (without balance, the response carries shortfall), a cheaper one refunds, a courtesy doesn't touch the ledger. The invite is updated and the person gets an email. Shows the summary and returns charged, refunded and balanceAfter.
| Parameter | Type | Required | Description |
|---|---|---|---|
booking_id | id | Yes | |
starts_at, ends_at, duration_minutes | date and time, number | No | The new time |
attendee_count | number | No |
mark_booking_no_show
Changes
Mark the no-show. Only for a confirmed booking that has already started. The community decides whether the credits are lost; the response says how many were refunded. Team and host. Parameter: booking_id.
get_booking_ics
Read-only
The calendar invite, the same file as in the confirmation email, returned as text in ics with the file name (a canceled booking returns the cancellation). Parameter: booking_id.
Rooms, blocks and prices
create_booking_resource
Changes
Create a room, desk or agenda. kind is ROOM, DESK, STATION or OTHER (owner and admin); in Scheduling, PERSON: who can create a person's agenda is decided by the space's offerers (a member creates only their own). The type doesn't change later. With no price band, it's free.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
kind | type | Yes | |
name | text | Yes | How members see it |
description, capacity, units, amenities | No | units: simultaneous bookings (1 = exclusive) | |
bookable, active, listed | true or false | No | listed owner and admin only |
meeting_url | link | No | Video call link |
opening_hours | weekly hours | No | Keys mon to sun, HH:MM periods |
slot_minutes, min_duration_minutes, max_duration_minutes, buffer_minutes, min_notice_minutes, max_advance_days, cancellation_window_hours | number | No | Empty, follows the space |
image_url or image_base64 | No | The photo | |
owner_profile_id | id | No | Scheduling, owner and admin: whose agenda it is |
update_booking_resource
Changes
Edit. Changes only what you send; replaces the photo with image_url or image_base64 and removes it with remove_image. Existing bookings keep their price. Parameter resource_id plus the fields above. In Scheduling, whoever offers edits their own agenda, except listed.
delete_booking_resource
Asks to confirm
Delete. With active upcoming bookings, the response is 409 listing them; with cancel_bookings: true, it cancels them all (full refund and an email to each person) and deletes. Owner or admin.
list_availability_exceptions
Read-only
Blocks (CLOSED) and extra hours (OPEN) of a room from now on. Parameters: resource_id, from.
create_availability_exception
Changes
Block or open a period. kind is CLOSED (default: maintenance, holiday) or OPEN (extra). A block with active bookings is refused with 409 listing them: to cancel them, use cancel_bookings_for_closure. Rooms: the team; people's agendas: whoever offers and the owner and the admin.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_id | id | Yes | |
starts_at, ends_at | date and time | Yes | Local time |
kind | CLOSED or OPEN | No | Default CLOSED |
reason | text | No | Shown to those whose booking is canceled |
cancel_bookings_for_closure
Asks to confirm
Block, canceling. Blocks the period and cancels every active booking within it: each one is refunded in full, each person gets the email and the event is canceled in their calendar. Says how many were canceled. Use it after create_availability_exception answered 409 and the person agreed. Parameters: resource_id, starts_at, ends_at, reason.
delete_availability_exception
Asks to confirm
Remove a block or extra hours. Bookings the block already canceled don't come back. Parameters: resource_id, exception_id.
list_price_rules
Read-only
A room's price bands (the only source of price; with no band, it's free). The first that fits wins: a specific date, then a weekday, then the default; the cost is per block, and each block uses the band it starts in. Owner or admin. Parameter: resource_id.
create_price_rule
Changes
Create a band. For example, 3 credits per 30 minutes. Hours offered by a member are always free; in Scheduling, a paid band needs Allow paid hours in the space (409). Charging in money isn't done yet.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_id | id | Yes | |
mode | FREE or CREDITS | Yes | |
block_minutes | 5 to 1440 | With CREDITS | The block size |
credits | integer | With CREDITS | Credits per block |
weekday | 0 (Sunday) to 6 | No | Empty, every day |
specific_date | YYYY-MM-DD | No | Wins over the weekday |
from_time, to_time | HH:MM | No | The part of the day |
update_price_rule
Changes
Edit a band (resource_id, rule_id, and only what changes). Bookings already made keep their price.
delete_price_rule
Asks to confirm
Remove a band. With none left, the room is free; bookings already made keep their price. Parameters: resource_id, rule_id.
Scheduling
get_scheduling_config
Read-only
The space's rules: who offers (offerers), allowPaidSlots, requireListingApproval, whether you can offer now, your agendas and, for the owner and the admin, how many offers are waiting for approval. A member's hours are always free. Parameter: space.
search_scheduling_hosts
Read-only
People with free time. Each one comes with their agendas, how many free times they have and the next 3 (free or the cost in credits, with canAfford) and your balance. When nobody has time, it suggests the nearest. To book, use create_booking.
| Parameter | Type | Required | Description |
|---|---|---|---|
space | id or link | Yes | |
q | text | No | Part of the name |
date, from, to | No | The day and the window; with no day, the next 14 | |
duration_minutes, host_profile_id, page, limit | No |
get_scheduling_host
Read-only
A person's page, with the grid of free times per day (1 to 7 days). A person with no listed agenda, who lost the role or from another community answers 404. Parameters: space, profile_id, date, days, duration_minutes.
list_pending_scheduling_offers
Read-only
Agendas waiting for approval, each with its owner and whether they still meet the rule of who offers. Owner or admin. Parameter: space.
set_booking_resource_listing
Changes
Approve or take an agenda off the list. listed: true approves (the agenda shows to members); false takes it off (it doesn't cancel any booking already made, it only prevents new ones). Reversible, no confirmation. Owner or admin. Parameters: resource_id, listed.