Skip to main content
Glama

trmnl_create_room_booking

Book a room slot on a calendar as the owner, using ISO 8601 times and conflict detection to avoid double-booking.

Instructions

Book a room Books the slot on the room calendar as the owner. Times are ISO 8601; a time without a zone is read in the calendar time zone. An iCal calendar is read-only and refuses; an overlap answers 409. TRMNL POST /api/apps/room_booking/{installation_id}/calendars/{id}/bookings. Changes remote state or starts work. Run only within the user-authorized scope.

Input Schema

NameRequiredDescriptionDefault
bodyYes
pathYes
profileNoConfigured profile name; defaults to default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (which already state readOnly=false, destructive=false, idempotent=false, openWorld=true), the description discloses ownership semantics, ISO 8601 handling, zone-less time interpretation, the iCal refusal, and the 409 conflict on overlap. That is real behavioral context an agent cannot get from annotations. It stops short of describing the response body or partial-failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core intent is front-loaded in the first clause, followed by the operating constraints and then the endpoint. Every sentence adds information; no padding or repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the essentials for a mutation tool: auth scope, time format, a known read-only failure mode, and the 409 overlap path. The absence of any hint about what the booking response contains is a minor gap given there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% and the body fields (starts_at, ends_at, title) carry no schema descriptions, so the description must compensate. It does so for the most failure-prone part: times are ISO 8601 and a zoneless value is interpreted in the calendar's time zone. The optional title field's semantics remain unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource ("Book a room") plus the concrete effect: the slot is written to the room calendar with the caller as owner. It is clearly distinguishable from siblings like trmnl_cancel_room_booking or trmnl_list_room_bookings, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the operation context (creating a new occupancy versus cancelling or listing), and the iCal-read-only refusal plus 409-on-overlap give practical preconditions. However, there is no explicit guidance on when to prefer this over trmnl_create_public_booking or trmnl_list_room_bookings, and the closing "Run only within the user-authorized scope" is a generic safety boilerplate rather than routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools