Strumenti · Prenotazioni e Appuntamenti
Gli strumenti MCP delle Prenotazioni (sale, scrivanie e postazioni) e degli Appuntamenti (orari di persone): cercare ciò che è libero, prenotare con costo in crediti, spostare, annullare, assenza, invito di calendario, sale, blocchi, fasce di prezzo e approvazione delle agende. Ruolo minimo e ricette.
Il modulo Prenotazioni e gli Appuntamenti tramite l'assistente: cercare sale e orari liberi (con il costo in crediti e il tuo saldo), prenotare, spostare, annullare, segnare l'assenza, scaricare l'invito di calendario, registrare sale e scrivanie, bloccare orari, definire i prezzi e approvare le agende dei membri. I due moduli usano gli stessi strumenti di prenotazione; quelli degli Appuntamenti sono gli ultimi cinque.
Ogni strumento ha un'etichetta: Solo lettura non cambia nulla, Modifica crea o cambia qualcosa subito, e Chiede conferma agisce solo dopo il tuo sì a un riepilogo. Vedi Denaro e conferma.
In sintesi
| Strumento | Cosa fa | Ruolo minimo | Tipo |
|---|---|---|---|
search_booking_rooms | Trova ciò che risponde alla richiesta, con costo e saldo | Chiunque veda lo spazio | Solo lettura |
check_availability | Gli orari liberi e occupati di un giorno | Chiunque veda lo spazio | Solo lettura |
list_booking_resources | Le sale, scrivanie, postazioni e agende | Chiunque veda lo spazio | Solo lettura |
list_booking_amenities | Il catalogo delle dotazioni | Qualsiasi | Solo lettura |
get_booking_resource | Una sala con le regole già risolte | Chiunque veda lo spazio | Solo lettura |
create_booking | Prenota per te e addebita i tuoi crediti | Qualsiasi | Modifica |
create_booking_for_member | Prenota a nome di un membro, addebitando i suoi crediti | Moderatore (o finanza) | Chiede conferma |
list_my_bookings | Le tue prenotazioni (o quelle fatte con te) | Qualsiasi | Solo lettura |
list_bookings | Tutte le prenotazioni della community | Moderatore (o finanza) | Solo lettura |
get_booking | Una prenotazione | Titolare, host e team | Solo lettura |
cancel_booking | Annulla e rimborsa secondo la regola | Titolare, host e team | Chiede conferma |
reschedule_booking | Cambia l'orario e conguaglia i crediti | Titolare, host e team | Chiede conferma |
mark_booking_no_show | Segna l'assenza | Team e host | Modifica |
get_booking_ics | L'invito di calendario (.ics) | Titolare, host e team | Solo lettura |
create_booking_resource | Crea una sala, scrivania o agenda | Amministratore (sale) | Modifica |
update_booking_resource | Modifica, cambia o rimuove la foto | Amministratore (sale) | Modifica |
delete_booking_resource | Elimina (annullando le prenotazioni future) | Amministratore | Chiede conferma |
list_availability_exceptions | Blocchi e orari extra | Chiunque veda lo spazio | Solo lettura |
create_availability_exception | Blocca o apre un periodo | Team (sale) | Modifica |
cancel_bookings_for_closure | Blocca annullando le prenotazioni del periodo | Team (sale) | Chiede conferma |
delete_availability_exception | Rimuove un blocco o un orario extra | Team (sale) | Chiede conferma |
list_price_rules | Le fasce di prezzo di una sala | Amministratore | Solo lettura |
create_price_rule | Crea una fascia di prezzo | Amministratore | Modifica |
update_price_rule | Modifica una fascia | Amministratore | Modifica |
delete_price_rule | Rimuove una fascia | Amministratore | Chiede conferma |
get_scheduling_config | Le regole degli Appuntamenti e le tue agende | Chiunque veda lo spazio | Solo lettura |
search_scheduling_hosts | Persone con orari liberi | Chiunque veda lo spazio | Solo lettura |
get_scheduling_host | La pagina di una persona, con la griglia | Chiunque veda lo spazio | Solo lettura |
list_pending_scheduling_offers | Agende in attesa di approvazione | Amministratore | Solo lettura |
set_booking_resource_listing | Approva o rimuove un'agenda | Amministratore | Modifica |
"Team" è il proprietario, l'amministratore, il moderatore e la finanza. I ruoli sono quelli delle rotte: l'assistente non fa mai più di quanto la persona collegata farebbe sullo schermo.
Gli spazi si creano con create_space e module: "bookings" o "scheduling"; update_space cambia solo ciò che invii. L'argomento bookings porta i valori predefiniti di ogni sala (slot_minutes, min_duration_minutes, max_duration_minutes, min_notice_minutes, max_advance_days, show_booker_name e opening_hours, con le chiavi da mon a sun e periodi HH:MM); scheduling porta gli stessi più offerers (ADMINS, TEAM o MEMBERS), allow_paid_slots e require_listing_approval.
Orari. Gli orari che invii sono sempre sull'orologio della community ("2026-11-03T14:00", senza suffisso). Costi. Prenotare, spostare e annullare toccano i crediti: l'assistente dice il costo e il saldo prima di prenotare. Senza crediti sufficienti, la risposta riporta required, balance e shortfall; con l'orario occupato, riporta i prossimi orari liberi.
Cercare e consultare
search_booking_rooms
Solo lettura
Ciò che risponde alla richiesta. Indica un inizio esatto (starts_at) o una fascia del giorno (date con from e to), più durata, capienza e dotazioni. Restituisce solo le risorse che corrispondono, con gli orari di inizio liberi, il costo in crediti, canAfford e il tuo saldo, ordinate dalla più presto e poi dalla capienza minore; quando nulla va bene, next_slots elenca i prossimi orari per la stessa richiesta.
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
space | id o link | Sì | Lo spazio Prenotazioni o Appuntamenti |
starts_at | data e ora | No | Inizio esatto, ora locale |
date, from, to | giorno AAAA-MM-GG, HH:MM | No | La fascia di una ricerca |
duration_minutes | numero, 5 o più | No | Durata |
capacity | numero | No | Quante persone devono starci |
amenities | elenco di chiavi | No | Sono tutte richieste (da list_booking_amenities) |
kind | ROOM, DESK, STATION, OTHER o PERSON | No | Il tipo |
host_profile_id | id | No | Solo le agende di questa persona |
Chiedi così: "Mi serve una sala per 6 persone domani dalle 14 alle 16, con proiettore."
check_availability
Solo lettura
Libero e occupato. Gli orari di un giorno (o fino a 7), calcolati dall'orario settimanale, dai blocchi e dalle prenotazioni, ogni orario libero con creditCost e canAfford. Non dice mai chi ha prenotato, a meno che lo spazio mostri il nome.
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
space | id o link | Sì | |
date | AAAA-MM-GG | No | Il giorno (predefinito: oggi) |
days | da 1 a 7 | No | Quanti giorni |
resource_id, host_profile_id | id | No | Una sola sala, o una sola persona |
duration_minutes | numero | No | Predefinito: la prenotazione più breve |
list_booking_resources
Solo lettura
Le sale. Sale, scrivanie, postazioni e agende dello spazio. Il membro vede solo quelle visibili, attive e aperte alle prenotazioni; il team le vede tutte. Parametri: space (obbligatorio), kind, host_profile_id, page, limit.
list_booking_amenities
Solo lettura
Il catalogo delle dotazioni che la community accetta (proiettore, TV, lavagna, Wi-Fi…). Una chiave fuori dal catalogo viene rifiutata. Senza parametri.
get_booking_resource
Solo lettura
Una sala con le regole effettive già combinate con i valori predefiniti dello spazio (orario, intervallo, limiti di durata, preavviso, finestra di annullamento). Parametro: resource_id.
Prenotare
create_booking
Modifica
Prenotare per te. Prenota subito (già confermata) e addebita i tuoi crediti nello stesso passo. Prima, l'assistente dice il costo e il saldo. Per prenotare a nome di un altro membro, usa create_booking_for_member. La cortesia (waive_credits con waive_reason) è solo del proprietario e dell'amministratore. L'e-mail di conferma con l'invito di calendario entra in coda. Restituisce creditCost e balanceAfter.
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
resource_id | id | Sì | Da list_booking_resources o dalla ricerca |
starts_at | data e ora | Sì | Ora locale, es. 2026-11-03T14:00 |
ends_at o duration_minutes | data e ora o numero | Uno dei due | Predefinito: la prenotazione più breve |
attendee_count | numero | No | Quante persone |
title, notes | testo | No | A cosa serve e note |
waive_credits, waive_reason | vero o falso, testo | No | Cortesia, solo proprietario e amministratore |
Chiedi così: "Prenota la Sala 2 domani dalle 14 alle 16 per 6 persone."
create_booking_for_member
Chiede conferma
Prenotare a nome di un membro. Addebita i crediti del membro (o è gratuita come cortesia, solo proprietario e amministratore, con waive_reason) e il membro riceve l'e-mail con l'invito. Prima di agire, mostra un riepilogo con il membro e il suo saldo e ripete la chiamata solo dopo il tuo sì. Stessi parametri e stesse risposte di create_booking, più profile_id. Ruolo minimo: moderatore (o finanza).
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
profile_id | id | Sì | Il membro (list_members) |
Chiedi così: "Prenota la Sala 1 venerdì alle 10, a nome di Maria."
list_my_bookings
Solo lettura
Le tue prenotazioni, oppure, con as_host, quelle che le persone hanno fatto sull'agenda che offri. Filtri: space, resource_id, status (elenco, es. CONFIRMED,NO_SHOW), from, to, order, page, limit. Ognuna riporta canCancel.
list_bookings
Solo lettura
Tutte le prenotazioni della community, con gli stessi filtri. Ruolo minimo: moderatore (o finanza).
get_booking
Solo lettura
Una prenotazione: sala, persona, orari, stato, costo in crediti, se è stata una cortesia o un annullamento tardivo e cosa può fare chi chiede. Solo il titolare, l'host e il team; chiunque altro riceve 404. Parametro: booking_id.
Cambiare una prenotazione
cancel_booking
Chiede conferma
Annullare. Se il titolare annulla dopo la finestra (24 h per impostazione predefinita), l'annullamento è segnato come tardivo e può perdere i crediti; entro la finestra, o quando annulla il team o l'host, il rimborso è per intero. La persona riceve l'e-mail e l'evento viene annullato nel suo calendario. Una prenotazione già iniziata non si annulla (usa l'assenza). Mostra un riepilogo e agisce solo dopo il tuo sì.
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
booking_id | id | Sì | |
reason | testo | No | Va nell'e-mail |
reschedule_booking
Chiede conferma
Spostare. Cambia l'orario nella stessa sala (ciò che non invii resta, e la durata si mantiene). Tocca i crediti: un orario più caro addebita la differenza (senza saldo, la risposta riporta shortfall), uno più economico rimborsa, una cortesia non tocca il registro. L'invito viene aggiornato e la persona riceve un'e-mail. Mostra il riepilogo e restituisce charged, refunded e balanceAfter.
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
booking_id | id | Sì | |
starts_at, ends_at, duration_minutes | data e ora, numero | No | Il nuovo orario |
attendee_count | numero | No |
mark_booking_no_show
Modifica
Segnare l'assenza. Solo per una prenotazione confermata già iniziata. La community decide se i crediti si perdono; la risposta dice quanti ne sono stati restituiti. Team e host. Parametro: booking_id.
get_booking_ics
Solo lettura
L'invito di calendario, lo stesso file dell'e-mail di conferma, restituito come testo in ics con il nome del file (una prenotazione annullata restituisce l'annullamento). Parametro: booking_id.
Sale, blocchi e prezzi
create_booking_resource
Modifica
Creare una sala, scrivania o agenda. kind è ROOM, DESK, STATION o OTHER (proprietario e amministratore); negli Appuntamenti, PERSON: chi può creare l'agenda di una persona lo decide offerers dello spazio (un membro crea solo la propria). Il tipo non cambia dopo. Senza fascia di prezzo, è gratuita.
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
space | id o link | Sì | |
kind | tipo | Sì | |
name | testo | Sì | Come la vedono i membri |
description, capacity, units, amenities | No | units: prenotazioni simultanee (1 = esclusiva) | |
bookable, active, listed | vero o falso | No | listed solo proprietario e amministratore |
meeting_url | link | No | Link della videochiamata |
opening_hours | orario settimanale | No | Chiavi da mon a sun, periodi HH:MM |
slot_minutes, min_duration_minutes, max_duration_minutes, buffer_minutes, min_notice_minutes, max_advance_days, cancellation_window_hours | numero | No | Vuoto, segue lo spazio |
image_url o image_base64 | No | La foto | |
owner_profile_id | id | No | Appuntamenti, proprietario e amministratore: di chi è l'agenda |
update_booking_resource
Modifica
Modificare. Cambia solo ciò che invii; cambia la foto con image_url o image_base64 e la rimuove con remove_image. Le prenotazioni esistenti mantengono il prezzo. Parametro resource_id più i campi sopra. Negli Appuntamenti, chi offre modifica la propria agenda, tranne listed.
delete_booking_resource
Chiede conferma
Eliminare. Con prenotazioni future attive, la risposta è 409 con il loro elenco; con cancel_bookings: true, le annulla tutte (rimborso per intero ed e-mail a ogni persona) ed elimina. Proprietario o amministratore.
list_availability_exceptions
Solo lettura
Blocchi (CLOSED) e orari extra (OPEN) di una sala da qui in avanti. Parametri: resource_id, from.
create_availability_exception
Modifica
Bloccare o aprire un periodo. kind è CLOSED (predefinito: manutenzione, festività) o OPEN (extra). Un blocco con prenotazioni attive viene rifiutato con 409 e il loro elenco: per annullarle, usa cancel_bookings_for_closure. Sale: il team; agende di persone: chi offre e il proprietario e l'amministratore.
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
resource_id | id | Sì | |
starts_at, ends_at | data e ora | Sì | Ora locale |
kind | CLOSED o OPEN | No | Predefinito CLOSED |
reason | testo | No | Compare a chi ha la prenotazione annullata |
cancel_bookings_for_closure
Chiede conferma
Bloccare annullando. Blocca il periodo e annulla ogni prenotazione attiva al suo interno: ognuna viene rimborsata per intero, ogni persona riceve l'e-mail e l'evento viene annullato nel calendario. Dice quante ne sono state annullate. Usalo dopo che create_availability_exception ha risposto 409 e la persona ha acconsentito. Parametri: resource_id, starts_at, ends_at, reason.
delete_availability_exception
Chiede conferma
Rimuovere un blocco o un orario extra. Le prenotazioni che il blocco ha già annullato non tornano. Parametri: resource_id, exception_id.
list_price_rules
Solo lettura
Le fasce di prezzo di una sala (l'unica fonte di prezzo; senza fascia, è gratuita). Vale la prima che si adatta: data specifica, poi giorno della settimana, poi il predefinito; il costo è per blocco, e ogni blocco usa la fascia in cui inizia. Proprietario o amministratore. Parametro: resource_id.
create_price_rule
Modifica
Creare una fascia. Per esempio, 3 crediti ogni 30 minuti. Un orario offerto da un membro è sempre gratuito; negli Appuntamenti, una fascia a pagamento richiede Consenti orari a pagamento nello spazio (409). L'addebito in denaro non è ancora attivo.
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
resource_id | id | Sì | |
mode | FREE o CREDITS | Sì | |
block_minutes | da 5 a 1440 | Con CREDITS | La dimensione del blocco |
credits | intero | Con CREDITS | Crediti per blocco |
weekday | da 0 (domenica) a 6 | No | Vuoto, tutti i giorni |
specific_date | AAAA-MM-GG | No | Vale più del giorno della settimana |
from_time, to_time | HH:MM | No | La parte del giorno |
update_price_rule
Modifica
Modificare una fascia (resource_id, rule_id e solo ciò che cambia). Le prenotazioni già fatte mantengono il prezzo.
delete_price_rule
Chiede conferma
Rimuovere una fascia. Senza nessuna, la sala diventa gratuita; le prenotazioni già fatte mantengono il prezzo. Parametri: resource_id, rule_id.
Appuntamenti
get_scheduling_config
Solo lettura
Le regole dello spazio: chi offre (offerers), allowPaidSlots, requireListingApproval, se puoi offrire ora, le tue agende e, per il proprietario e l'amministratore, quante offerte attendono approvazione. L'orario di un membro è sempre gratuito. Parametro: space.
search_scheduling_hosts
Solo lettura
Persone con orari liberi. Ognuna arriva con le agende, quanti orari liberi ha e i prossimi 3 (gratis o con il costo in crediti, con canAfford) e il tuo saldo. Quando nessuno ha orari, suggerisce i più vicini. Per prenotare, usa create_booking.
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
space | id o link | Sì | |
q | testo | No | Parte del nome |
date, from, to | No | Il giorno e la fascia; senza giorno, i prossimi 14 | |
duration_minutes, host_profile_id, page, limit | No |
get_scheduling_host
Solo lettura
La pagina di una persona, con la griglia degli orari liberi per giorno (da 1 a 7 giorni). Una persona senza agenda visibile, che ha perso il ruolo o di un'altra community risponde 404. Parametri: space, profile_id, date, days, duration_minutes.
list_pending_scheduling_offers
Solo lettura
Agende in attesa di approvazione, ognuna con il titolare e se rispetta ancora la regola di chi offre. Proprietario o amministratore. Parametro: space.
set_booking_resource_listing
Modifica
Approvare o rimuovere un'agenda. listed: true approva (l'agenda compare ai membri); false la rimuove (non annulla nessuna prenotazione già fatta, impedisce solo quelle nuove). Reversibile, senza conferma. Proprietario o amministratore. Parametri: resource_id, listed.