Skip to main content
Glama

create_booking_link

Make a public booking link (usecaddie.app/meet/…): anyone with it can book a call on the user's calendar in the hours given. Only when the user asked for one. From an agent's own turn inside Caddie it's refused: ask the user. Returns its URL.

Input Schema

NameRequiredDescriptionDefault
toNobookable until, "HH:MM" in the link's timezone (tz) (default 17:00)
tzNothe timezone its hours are in, IANA ("Asia/Kolkata"); a new link's default is the user's. Changed, the hours keep their clock times in the new zone
daysNothe days these hours are for, "mon"…"sun" (new link: default mon to fri; a change: only these days change, the others keep their hours)
endsNoYYYY-MM-DD: the last day it can be booked ("never" to remove)
fromNobookable from, "HH:MM" in the link's timezone (tz; a new link's is the user's) (default 09:00)
slugNothe end of its URL (usecaddie.app/meet/<handle>/<slug>): letters, numbers and dashes; "" to follow the title again. The old address still leads there
hostsNoa team link: people from one of the user's workspaces host it. mode "any": a time shows when any one of them is free and the booking goes on that person's calendar, shared out evenly; "all": only when the user and every required person are free, all invited. everyone: the whole workspace, newcomers too; else people (names or emails). optional (mode all): invited, but their calendars don't decide the times. {"workspace": ""} makes it the user's alone again. Only what you give changes. From an agent's own turn inside Caddie it's refused: ask the user
placeNo
titleYes
rangesNoinstead of from/to, for a split day: [["09:00","13:00"],["14:00","18:00"]] in the link's timezone (tz); [] makes those days unbookable
accountNowhich connected Google account's calendar bookings go on, by its email ("" for the first)
minutesYeshow long a call is, 5 to 480
locationNoa Google Meet (default), a phone call, or a place (place: where)
max_daysNoup to this many days ahead, 1 to 60 (default 30)
questionsNothe booking form's own questions (name and email are always asked), in order; replaces them all ([] for none). Answers go on the calendar event
remindersNoreminder emails to the guest a day and an hour before; only what you give changes. *_subject and *_body replace Caddie's words ("" for Caddie's); {name}, {title}, {owner}, {when} and {place} are filled in
descriptionNoa line or two shown on the booking page
max_per_dayNoat most this many bookings a day (0: no limit)
notice_hoursNoat least this many hours ahead (default 4)
open_routinesNoroutines or habits (names or ids, list_habits) people can book over; replaces the list ([] for none)
block_routinesNothe user's routines and habits (lunch, gym, sleep) block bookings (default true)
buffer_minutesNofree time kept around each call

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

With no annotations the description must carry the load, and it discloses the security-relevant traits: the link is public ("anyone with it can book"), the permission model (agent-initiated calls are refused; ask the user), and the return value (its URL). It omits idempotency, name-collision behavior, and any confirmation/rate-limit expectations.

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?

Four short sentences: purpose and URL, the usage constraint, the refusal fallback, and the return value. Nothing repeats the schema, and the most decision-relevant facts come first.

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?

For a 22-parameter tool with nested objects and no output schema, the description covers the two things the schema cannot: who may call it and what it returns. The dense per-parameter schema text carries the rest, so no critical gap remains, though a hint about which params are typical for a first link would have helped.

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

Parameters3/5

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

Schema description coverage is 91% across 22 parameters, so the schema already explains slug, tz, ranges, hosts, reminders, etc. in detail. The description only lightly mirrors this ("in the hours given", the URL/handle/slug path), adding no new parameter meaning beyond what the schema states.

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?

States a specific verb and resource ("Make a public booking link") plus the resulting URL shape and what the link enables. It is clearly distinct from update_booking_link / delete_booking_link / list_booking_links by virtue of the verb, though it never names a sibling explicitly.

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

Usage Guidelines4/5

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

"Only when the user asked for one" is an explicit when-to-use constraint, and the refusal clause ("from an agent's own turn inside Caddie it's refused: ask the user") tells the agent what to do instead in that case. No alternative tool is named, so it falls short of a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources