# Herramientas · Reservas y Agendamiento

> Herramientas MCP de las Reservas (salas, mesas y estaciones) y del Agendamiento (horarios de personas): buscar lo que está libre, reservar con costo en créditos, reprogramar, cancelar, ausencia, invitación de calendario, salas, bloqueos, franjas de precio y aprobación de agendas. Rol mínimo y recetas.

El módulo [Reservas](/espacos/reservas) y el [Agendamiento](/espacos/agendamento) con el asistente: buscar salas y horarios libres (con el costo en [créditos](/monetizacao/creditos) y tu saldo), reservar, reprogramar, cancelar, marcar ausencia, descargar la invitación de calendario, registrar salas y mesas, bloquear horarios, definir precios y aprobar agendas de miembros. Los dos módulos usan las mismas herramientas de reserva; las de **Agendamiento** son las cinco últimas.

Cada herramienta lleva un sello: <span class="tool-kind tool-kind-read">Solo consulta</span> no cambia nada, <span class="tool-kind tool-kind-write">Modifica</span> crea o cambia algo al momento, y <span class="tool-kind tool-kind-confirm">Pide confirmación</span> solo actúa después de tu sí a un resumen. Consulta [Dinero y confirmación](/mcp/dinheiro-e-confirmacao).

## En resumen

| Herramienta | Qué hace | Rol mínimo | Tipo |
|---|---|---|---|
| [`search_booking_rooms`](#search-booking-rooms) | Encuentra lo que cumple la solicitud, con costo y saldo | Cualquiera que vea el espacio | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`check_availability`](#check-availability) | Los horarios libres y ocupados de un día | Cualquiera que vea el espacio | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`list_booking_resources`](#list-booking-resources) | Las salas, mesas, estaciones y agendas | Cualquiera que vea el espacio | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`list_booking_amenities`](#list-booking-amenities) | El catálogo de comodidades | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`get_booking_resource`](#get-booking-resource) | Una sala con las reglas ya resueltas | Cualquiera que vea el espacio | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`create_booking`](#create-booking) | Reserva para ti y debita tus créditos | Cualquiera | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`create_booking_for_member`](#create-booking-for-member) | Reserva a nombre de un miembro, debitando sus créditos | Moderador (o finanzas) | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`list_my_bookings`](#list-my-bookings) | Tus reservas (o las que hicieron contigo) | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`list_bookings`](#list-bookings) | Todas las reservas de la comunidad | Moderador (o finanzas) | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`get_booking`](#get-booking) | Una reserva | Titular, anfitrión y equipo | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`cancel_booking`](#cancel-booking) | Cancela y reembolsa según la regla | Titular, anfitrión y equipo | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`reschedule_booking`](#reschedule-booking) | Cambia el horario y ajusta los créditos | Titular, anfitrión y equipo | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`mark_booking_no_show`](#mark-booking-no-show) | Marca la ausencia | Equipo y anfitrión | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`get_booking_ics`](#get-booking-ics) | La invitación de calendario (`.ics`) | Titular, anfitrión y equipo | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`create_booking_resource`](#create-booking-resource) | Crea una sala, mesa o agenda | Administrador (salas) | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_booking_resource`](#update-booking-resource) | Edita, cambia o quita la foto | Administrador (salas) | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`delete_booking_resource`](#delete-booking-resource) | Elimina (cancelando las reservas futuras) | Administrador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`list_availability_exceptions`](#list-availability-exceptions) | Bloqueos y horarios extra | Cualquiera que vea el espacio | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`create_availability_exception`](#create-availability-exception) | Bloquea o abre un período | Equipo (salas) | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`cancel_bookings_for_closure`](#cancel-bookings-for-closure) | Bloquea cancelando las reservas del período | Equipo (salas) | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`delete_availability_exception`](#delete-availability-exception) | Quita un bloqueo u horario extra | Equipo (salas) | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`list_price_rules`](#list-price-rules) | Las franjas de precio de una sala | Administrador | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`create_price_rule`](#create-price-rule) | Crea una franja de precio | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_price_rule`](#update-price-rule) | Edita una franja | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`delete_price_rule`](#delete-price-rule) | Quita una franja | Administrador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`get_scheduling_config`](#get-scheduling-config) | Las reglas del Agendamiento y tus agendas | Cualquiera que vea el espacio | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`search_scheduling_hosts`](#search-scheduling-hosts) | Personas con horario libre | Cualquiera que vea el espacio | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`get_scheduling_host`](#get-scheduling-host) | La página de una persona, con la cuadrícula | Cualquiera que vea el espacio | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`list_pending_scheduling_offers`](#list-pending-scheduling-offers) | Agendas esperando aprobación | Administrador | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`set_booking_resource_listing`](#set-booking-resource-listing) | Aprueba o retira una agenda | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |

"Equipo" es el propietario, el administrador, el moderador y finanzas. Los roles son los de las rutas: el asistente nunca hace más de lo que la persona conectada haría en la pantalla.

Los espacios se crean con [`create_space`](/mcp/ferramentas-comunidade#create-space) y `module: "bookings"` o `"scheduling"`; [`update_space`](/mcp/ferramentas-comunidade#update-space) cambia solo lo que envíes. El argumento `bookings` lleva los valores predeterminados de toda sala (`slot_minutes`, `min_duration_minutes`, `max_duration_minutes`, `min_notice_minutes`, `max_advance_days`, `show_booker_name` y `opening_hours`, con las claves `mon` a `sun` y períodos `HH:MM`); `scheduling` lleva los mismos y además `offerers` (`ADMINS`, `TEAM` o `MEMBERS`), `allow_paid_slots` y `require_listing_approval`.

**Horarios.** Los horarios que envías son siempre del **reloj de la comunidad** (`"2026-11-03T14:00"`, sin sufijo). **Costos.** Reservar, reprogramar y cancelar **mueven los créditos**: el asistente dice el costo y el saldo antes de reservar. Sin créditos suficientes, la respuesta trae `required`, `balance` y `shortfall`; con el horario ocupado, trae los próximos horarios libres.

## Buscar y consultar

### `search_booking_rooms`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Lo que cumple la solicitud.** Da un inicio exacto (`starts_at`) o una franja del día (`date` con `from` y `to`), además de duración, capacidad y comodidades. Devuelve solo los recursos que cumplen, con las horas de inicio libres, el **costo en créditos**, `canAfford` y tu saldo, ordenados por el más temprano y luego por la menor capacidad; cuando nada sirve, `next_slots` lista los próximos horarios para la misma solicitud.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space` | id o enlace | Sí | El espacio Reservas o Agendamiento |
| `starts_at` | fecha y hora | No | Inicio exacto, hora local |
| `date`, `from`, `to` | día `AAAA-MM-DD`, `HH:MM` | No | La franja de una búsqueda |
| `duration_minutes` | número, 5 o más | No | Duración |
| `capacity` | número | No | Cuántas personas deben caber |
| `amenities` | lista de claves | No | Se exigen todas (de `list_booking_amenities`) |
| `kind` | `ROOM`, `DESK`, `STATION`, `OTHER` o `PERSON` | No | El tipo |
| `host_profile_id` | id | No | Solo las agendas de esta persona |

**Pídelo así:** *"Necesito una sala para 6 personas mañana de 14:00 a 16:00, con proyector."*

### `check_availability`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Libre y ocupado.** Los horarios de un día (o de hasta 7), calculados a partir del horario semanal, los bloqueos y las reservas, cada uno libre con `creditCost` y `canAfford`. Nunca dice quién reservó, salvo que el espacio muestre el nombre.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space` | id o enlace | Sí | |
| `date` | `AAAA-MM-DD` | No | El día (por defecto: hoy) |
| `days` | 1 a 7 | No | Cuántos días |
| `resource_id`, `host_profile_id` | id | No | Una sola sala, o una sola persona |
| `duration_minutes` | número | No | Por defecto: la reserva más corta |

### `list_booking_resources`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Las salas.** Salas, mesas, estaciones y agendas del espacio. El miembro ve solo las visibles, activas y abiertas a reservas; el equipo las ve todas. Parámetros: `space` (obligatorio), `kind`, `host_profile_id`, `page`, `limit`.

### `list_booking_amenities`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**El catálogo de comodidades** que acepta la comunidad (proyector, TV, pizarra, Wi-Fi…). Una clave fuera del catálogo se rechaza. Sin parámetros.

### `get_booking_resource`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Una sala** con las reglas efectivas ya combinadas con los valores predeterminados del espacio (horario, intervalo, límites de duración, antelación, plazo de cancelación). Parámetro: `resource_id`.

## Reservar

### `create_booking`

<span class="tool-kind tool-kind-write">Modifica</span>

**Reservar para ti.** Reserva al momento (ya **confirmada**) y **debita tus créditos** en el mismo paso. Antes, el asistente dice el costo y el saldo. Para reservar a nombre de otro miembro, usa [`create_booking_for_member`](#create-booking-for-member). La **cortesía** (`waive_credits` con `waive_reason`) es solo del propietario y del administrador. El correo de confirmación con la invitación de calendario entra en la cola. Devuelve `creditCost` y `balanceAfter`.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `resource_id` | id | Sí | De `list_booking_resources` o de la búsqueda |
| `starts_at` | fecha y hora | Sí | Hora local, p. ej. `2026-11-03T14:00` |
| `ends_at` o `duration_minutes` | fecha y hora o número | Uno de los dos | Por defecto: la reserva más corta |
| `attendee_count` | número | No | Cuántas personas |
| `title`, `notes` | texto | No | Para qué es y notas |
| `waive_credits`, `waive_reason` | verdadero o falso, texto | No | Cortesía, solo propietario y administrador |

**Pídelo así:** *"Reserva la Sala 2 mañana de 14:00 a 16:00 para 6 personas."*

### `create_booking_for_member`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Reservar a nombre de un miembro.** Debita **sus** créditos (o sale gratis como cortesía, solo propietario y administrador, con `waive_reason`) y el miembro recibe el correo con la invitación. Antes de actuar, muestra un resumen con el miembro y **su saldo** y solo repite la llamada después de tu sí. Mismos parámetros y mismas respuestas que `create_booking`, más `profile_id`. *Rol mínimo: moderador (o finanzas).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `profile_id` | id | Sí | El miembro (`list_members`) |

**Pídelo así:** *"Reserva la Sala 1 el viernes a las 10:00 a nombre de María."*

### `list_my_bookings`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Tus reservas**, o, con `as_host`, las que hicieron las personas en la agenda que ofreces. Filtros: `space`, `resource_id`, `status` (lista, p. ej. `CONFIRMED,NO_SHOW`), `from`, `to`, `order`, `page`, `limit`. Cada una trae `canCancel`.

### `list_bookings`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Todas las reservas de la comunidad**, con los mismos filtros. *Rol mínimo: moderador (o finanzas).*

### `get_booking`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Una reserva**: sala, persona, horarios, situación, costo en créditos, si fue cortesía o cancelación tardía y lo que puede hacer quien pregunta. Solo el titular, el anfitrión y el equipo; otra persona recibe `404`. Parámetro: `booking_id`.

## Cambiar una reserva

### `cancel_booking`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Cancelar.** Si el titular cancela **después del plazo** (24 h por defecto), la cancelación se marca como **tardía** y puede perder los créditos; dentro del plazo, o cuando cancela el equipo o el anfitrión, el reembolso es completo. La persona recibe el correo y el evento se cancela en su calendario. Una reserva que ya ha empezado no se cancela (usa la ausencia). Muestra un resumen y solo actúa después de tu sí.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `booking_id` | id | Sí | |
| `reason` | texto | No | Va en el correo |

### `reschedule_booking`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Reprogramar.** Cambia el horario en la misma sala (lo que no envíes se queda, y la duración se mantiene). **Mueve los créditos**: un horario más caro debita la diferencia (sin saldo, la respuesta trae `shortfall`), uno más barato reembolsa, una cortesía no toca el libro. La invitación se actualiza y la persona recibe un correo. Muestra el resumen y devuelve `charged`, `refunded` y `balanceAfter`.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `booking_id` | id | Sí | |
| `starts_at`, `ends_at`, `duration_minutes` | fecha y hora, número | No | El nuevo horario |
| `attendee_count` | número | No | |

### `mark_booking_no_show`

<span class="tool-kind tool-kind-write">Modifica</span>

**Marcar la ausencia.** Solo para una reserva confirmada que ya ha empezado. La comunidad decide si los créditos se pierden; la respuesta dice cuántos se devolvieron. *Equipo y anfitrión.* Parámetro: `booking_id`.

### `get_booking_ics`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**La invitación de calendario**, el mismo archivo del correo de confirmación, devuelto como texto en `ics` con el nombre del archivo (una reserva cancelada devuelve la cancelación). Parámetro: `booking_id`.

## Salas, bloqueos y precios

### `create_booking_resource`

<span class="tool-kind tool-kind-write">Modifica</span>

**Crear una sala, mesa o agenda.** `kind` es `ROOM`, `DESK`, `STATION` u `OTHER` (propietario y administrador); en el Agendamiento, `PERSON`: quién puede crear la agenda de una persona lo decide el `offerers` del espacio (un miembro crea solo la suya). El tipo no cambia después. Sin franja de precio, es gratis.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space` | id o enlace | Sí | |
| `kind` | tipo | Sí | |
| `name` | texto | Sí | Cómo la ven los miembros |
| `description`, `capacity`, `units`, `amenities` | | No | `units`: reservas simultáneas (1 = exclusiva) |
| `bookable`, `active`, `listed` | verdadero o falso | No | `listed` solo propietario y administrador |
| `meeting_url` | enlace | No | Enlace de videollamada |
| `opening_hours` | horario semanal | No | Claves `mon` a `sun`, períodos `HH:MM` |
| `slot_minutes`, `min_duration_minutes`, `max_duration_minutes`, `buffer_minutes`, `min_notice_minutes`, `max_advance_days`, `cancellation_window_hours` | número | No | En blanco, sigue al espacio |
| `image_url` o `image_base64` | | No | La foto |
| `owner_profile_id` | id | No | Agendamiento, propietario y administrador: de quién es la agenda |

### `update_booking_resource`

<span class="tool-kind tool-kind-write">Modifica</span>

**Editar.** Cambia solo lo que envíes; cambia la foto con `image_url` o `image_base64` y la quita con `remove_image`. Las reservas existentes **conservan el precio**. Parámetro `resource_id` más los campos de arriba. En el Agendamiento, quien ofrece edita su propia agenda, salvo `listed`.

### `delete_booking_resource`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Eliminar.** Con reservas futuras activas, la respuesta es `409` listándolas; con `cancel_bookings: true`, las cancela todas (reembolso completo y correo para cada persona) y elimina. *Propietario o administrador.*

### `list_availability_exceptions`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Bloqueos (`CLOSED`) y horarios extra (`OPEN`)** de una sala de aquí en adelante. Parámetros: `resource_id`, `from`.

### `create_availability_exception`

<span class="tool-kind tool-kind-write">Modifica</span>

**Bloquear o abrir un período.** `kind` es `CLOSED` (por defecto: mantenimiento, festivo) u `OPEN` (extra). Un bloqueo con reservas activas se rechaza con `409` listándolas: para cancelarlas, usa `cancel_bookings_for_closure`. Salas: el equipo; agendas de personas: quien ofrece y el propietario y el administrador.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `resource_id` | id | Sí | |
| `starts_at`, `ends_at` | fecha y hora | Sí | Hora local |
| `kind` | `CLOSED` u `OPEN` | No | Por defecto `CLOSED` |
| `reason` | texto | No | Aparece para quien tiene la reserva cancelada |

### `cancel_bookings_for_closure`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Bloquear cancelando.** Bloquea el período **y cancela** toda reserva activa dentro de él: cada una se reembolsa completa, cada persona recibe el correo y el evento se cancela en su calendario. Dice cuántas se cancelaron. Úsala después de que `create_availability_exception` haya respondido `409` y la persona esté de acuerdo. Parámetros: `resource_id`, `starts_at`, `ends_at`, `reason`.

### `delete_availability_exception`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Quitar** un bloqueo u horario extra. Las reservas que el bloqueo ya canceló **no regresan**. Parámetros: `resource_id`, `exception_id`.

### `list_price_rules`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Las franjas de precio** de una sala (la única fuente de precio; sin franja, es gratis). Vale la primera que encaja: fecha concreta, luego día de la semana, luego la predeterminada; el costo es por bloque, y cada bloque usa la franja en la que empieza. *Propietario o administrador.* Parámetro: `resource_id`.

### `create_price_rule`

<span class="tool-kind tool-kind-write">Modifica</span>

**Crear una franja.** Por ejemplo, 3 créditos cada 30 minutos. Un horario ofrecido por un miembro siempre es gratis; en el Agendamiento, una franja de pago necesita **Permitir horarios de pago** en el espacio (`409`). El cobro en dinero aún no se hace.

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `resource_id` | id | Sí | |
| `mode` | `FREE` o `CREDITS` | Sí | |
| `block_minutes` | 5 a 1440 | Con `CREDITS` | El tamaño del bloque |
| `credits` | entero | Con `CREDITS` | Créditos por bloque |
| `weekday` | 0 (domingo) a 6 | No | En blanco, todos los días |
| `specific_date` | `AAAA-MM-DD` | No | Vale más que el día de la semana |
| `from_time`, `to_time` | `HH:MM` | No | El tramo del día |

### `update_price_rule`

<span class="tool-kind tool-kind-write">Modifica</span>

**Editar** una franja (`resource_id`, `rule_id`, y solo lo que cambie). Las reservas ya hechas conservan el precio.

### `delete_price_rule`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Quitar** una franja. Sin ninguna, la sala queda gratis; las reservas ya hechas conservan el precio. Parámetros: `resource_id`, `rule_id`.

## Agendamiento

### `get_scheduling_config`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Las reglas del espacio**: quién ofrece (`offerers`), `allowPaidSlots`, `requireListingApproval`, si puedes ofrecer ahora, tus agendas y, para el propietario y el administrador, cuántas ofertas esperan aprobación. El horario de un miembro siempre es gratis. Parámetro: `space`.

### `search_scheduling_hosts`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Personas con horario libre.** Cada una viene con sus agendas, cuántos horarios libres tiene y los próximos 3 (gratis o el costo en créditos, con `canAfford`) y tu saldo. Cuando nadie tiene horario, sugiere los más cercanos. Para reservar, usa [`create_booking`](#create-booking).

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space` | id o enlace | Sí | |
| `q` | texto | No | Parte del nombre |
| `date`, `from`, `to` | | No | El día y la franja; sin día, los próximos 14 |
| `duration_minutes`, `host_profile_id`, `page`, `limit` | | No | |

### `get_scheduling_host`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**La página de una persona**, con la cuadrícula de horarios libres por día (1 a 7 días). Una persona sin agenda visible, que perdió el rol o de otra comunidad responde `404`. Parámetros: `space`, `profile_id`, `date`, `days`, `duration_minutes`.

### `list_pending_scheduling_offers`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Agendas esperando aprobación**, cada una con su dueño y si aún cumple la regla de quién ofrece. *Propietario o administrador.* Parámetro: `space`.

### `set_booking_resource_listing`

<span class="tool-kind tool-kind-write">Modifica</span>

**Aprobar o retirar una agenda.** `listed: true` aprueba (la agenda aparece a los miembros); `false` la retira (no cancela ninguna reserva ya hecha, solo impide las nuevas). Reversible, sin confirmación. *Propietario o administrador.* Parámetros: `resource_id`, `listed`.

## Relacionados

- [Reservas](/espacos/reservas)
- [Agendamiento](/espacos/agendamento)
- [Herramientas · Créditos](/mcp/ferramentas-creditos)
- [Herramientas](/mcp/ferramentas)
- [Dinero y confirmación](/mcp/dinheiro-e-confirmacao)
- [Recetas](/mcp/receitas)
