Skip to main content
Glama

garmin_schedule_cycling_workout

Create a structured cycling workout with power or FTP targets and schedule it to your Garmin Connect calendar for date-specific training.

Instructions

Create a structured cycling workout with power/FTP targets and schedule it to Garmin Connect calendar.

Args: name: Workout name (e.g. 'FTP 75% 有氧骑行'). date: Schedule date in YYYY-MM-DD format. description: Description of the workout. steady_min: Duration in minutes for a steady state ride (e.g. 45.0). target_watts_min: Lower power target in watts (e.g. 140.0). target_watts_max: Upper power target in watts (e.g. 155.0). target_ftp_pct_min: Lower power target as % of FTP (e.g. 70 for 70% FTP). target_ftp_pct_max: Upper power target as % of FTP (e.g. 80 for 80% FTP). warmup_min: Warmup duration in minutes (optional). warmup_watts: Warmup target watts (optional). intervals: List of interval dicts, each with keys like: {'duration_min': 5.0, 'watts_min': 180, 'watts_max': 200, 'description': 'Z4 Interval'} or {'ftp_pct_min': 100, 'ftp_pct_max': 105, ...}. cooldown_min: Cooldown duration in minutes (optional).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "name": "<name>",
      "date": "<date>"
    },
    "name": "garmin_schedule_cycling_workout"
  }
}

Input Schema

NameRequiredDescriptionDefault
dateYes
nameYes
intervalsNo
steady_minNo
warmup_minNo
descriptionNo
cooldown_minNo
warmup_wattsNo
target_watts_maxNo
target_watts_minNo
target_ftp_pct_maxNo
target_ftp_pct_minNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.10

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations supplied, the description carries the full disclosure burden, and it only reveals that a write occurs on a remote calendar. It says nothing about authentication/account requirements, whether an existing scheduled workout is replaced, idempotency, rate limits, or what a successful scheduling response contains. For a mutating, remote-side-effect tool this is a substantial gap.

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?

The summary sentence is front-loaded and the docstring-style argument list is one line per parameter with no filler. Slightly verbose overall for a definition, but nearly every line carries information an agent needs to fill the 12-parameter schema.

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

Completeness3/5

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

Output schema exists, so return values need not be described, and parameter coverage is genuinely good. However, for a 12-parameter mutation tool with zero annotations, the definition leaves key behavioral questions open: precedence between watts and FTP-percent targets, optional warmup/cooldown defaults, and what happens on scheduling conflict or failure.

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 description coverage is 0%, yet all twelve parameters are explained with units and concrete examples, including the nested interval dict keys ('duration_min', 'watts_min', 'ftp_pct_min', 'description'). The notable omission is the relationship between target_watts_* and target_ftp_pct_* — whether they are alternatives or jointly required is left unstated.

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?

The first sentence gives a specific verb pair ('Create ... and schedule'), the resource ('structured cycling workout with power/FTP targets'), and the destination ('Garmin Connect calendar'), which cleanly separates it from garmin_schedule_running_workout by discipline. It stops short of naming the sibling explicitly, so an agent must infer that running workouts belong elsewhere.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus garmin_schedule_running_workout or garmin_training_plan, and no prerequisites are given (e.g., that FTP settings must exist for pct targets to resolve). The parameter-level hints imply design choices about watts vs. FTP-percent targets but never state the rule for picking one.

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