Skip to main content
Glama

schedule_workout

Idempotent

Schedule a saved workout template on one calendar date. The workout appears on that date in the LiftTrack app and, when the user's Garmin account is linked, on their Garmin calendar and watch. If the workout is already on that date (scheduled once, by the weekly routine, or by a program), nothing is added and the existing entry is reported.

Args: workout_name: Exact workout template name (case insensitive). date: YYYY-MM-DD, from today through 30 days ahead. workout_folder_name: Optional folder name to disambiguate duplicate names.

Input Schema

NameRequiredDescriptionDefault
dateYesCalendar date as YYYY-MM-DD
workout_nameYesThe exact name of the workout template
workout_folder_nameNoFolder that holds the workout, to disambiguate duplicate names. Use "My Workouts" for a workout not in any folder.

Output Schema

NameRequiredDescriptionDefault
dateYes
workout_nameYes
existing_typeNo
garmin_linkedYes
already_scheduledYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (idempotentHint=true, destructiveHint=false, openWorldHint=false), and the description adds genuinely new behavioral facts: the entry propagates to the Garmin calendar and watch when linked, and duplicates result in no addition but a report of the existing entry. These cross-system side effects go well beyond what annotations declare.

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

Conciseness4/5

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

Front-loaded with the core action and side effects, then a compact Args block. The Args block partly duplicates the schema descriptions, but the date-range and case-insensitivity details earn their place, so waste is minimal.

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?

An output schema exists so return values need not be explained, and the description fully covers the mutation's effects, the idempotent duplicate branch, and the constrained parameter ranges. Nothing an agent needs to invoke this correctly is missing.

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 baseline is 3, but the description adds meaning the schema lacks: the date window (today through 30 days ahead) and that workout_name matching is case insensitive. The folder parameter is largely restated from the schema, which keeps this from a 5.

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?

States a specific verb and resource ('Schedule a saved workout template on one calendar date') with clear scope, and the duplicate-handling sentence distinguishes it from get_schedule and unschedule_workout siblings. An agent can tell what this does and what it does not do without inspecting schemas.

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?

Gives a clear usage condition and describes the no-op branch when the workout is already scheduled by any source. It stops short of explicitly naming alternative tools (e.g., unschedule_workout or get_schedule) or the inverse operation, so it is strong context without full when/when-not routing.

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