Skip to main content
Glama

Next Appointment

next_appointment
Read-only

Finds the single next available appointment slot a user can reserve, excluding full or already-booked times, and returns it as a calendar event or empty array.

Instructions

Get the single next open time slot the current user is still eligible to sign up for, searched across every appointment group the user can reserve in (or only the appointment_group_ids you pass), and return it as a one-element array of calendar-event objects — or an empty array if nothing is open. This is about availability, not history: it excludes slots the user already reserved and slots that are full, but does not exclude a whole group just because the user holds a reservation in one of its other slots. Use list_appointment_groups with scope="reservable" to browse every open group instead of just the next slot, and list_appointment_group_users to see existing reservations.

Input Schema

NameRequiredDescriptionDefault
appointment_group_idsNoLimit to specific appointment group IDs

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.18.15
    • addedInput schema / properties / appointment_group_ids / items / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9][0-9]{0,18}$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / appointment_group_ids / items / type
      Removed value: -"number"
  2. Changed1 schema field changedv1.18.11
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  3. Addedv1.18.4

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds substantial behavioral detail beyond them. It explains which slots are excluded (already reserved or full), clarifies that a group is not excluded merely because the user has a reservation in another slot, and specifies the return value as a one-element array or empty array.

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 description is dense but well structured: the core behavior and return shape come first, followed by eligibility exclusions and then alternative tools. Every sentence adds decision-relevant information, with no filler.

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

Completeness5/5

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

There is no output schema, but the description fully explains the return value as a one-element array of calendar-event objects, or an empty array when nothing is open. Combined with the eligibility rules and alternative routing, it gives an agent everything needed to call and interpret the tool.

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 100%, so the schema already documents that appointment_group_ids limits results to specific group IDs. The description adds useful semantics by explaining the default behavior: if no IDs are passed, it searches across every appointment group the user can reserve in.

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

Purpose5/5

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

The description states a specific verb and resource: get the single next open time slot for the current user. It defines scope (across every appointment group the user can reserve in), return shape, and how it differs from listing groups, so an agent can distinguish it from siblings without opening schemas.

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

Usage Guidelines5/5

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

It explicitly names alternatives and when to use them: list_appointment_groups with scope="reservable" to browse every open group, and list_appointment_group_users to see existing reservations. It also explains the optional appointment_group_ids filter versus the default all-groups search.

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