save_workout_template
Save a reusable cycling, running, or interval workout to your Coros library as a template, ready to sync to your watch for guided execution.
Instructions
Save a REUSABLE cycling/intervals/running workout TEMPLATE to the Coros library.
⚠️ This persists to the library indefinitely. Use ONLY when the user explicitly asks to "save as a template", "create a workout in my library", "add to my workout list", or otherwise indicates they want a reusable template.
For a ONE-OFF workout for a specific date — the common case — use schedule_workout instead. That tool builds the workout inline and leaves no library residue.
If the user's intent is unclear, ASK THEM: "Do you want this saved as a reusable template in your library, or just scheduled as a one-off for [date]?" Don't guess.
The saved template appears in the Coros app under Workouts and can be synced to the watch for guided execution.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Workout name (e.g. "Z2 Erholung 60min"). | |
| steps | Yes | List of workout steps. Each step is either a plain step or a repeat group. Plain step: - name (str): step label, e.g. "10:00 Warm-up" - duration_minutes (float): step duration in minutes - intensity_low (int): lower intensity target (watts, BPM, etc. depending on intensity_type) - intensity_high (int): upper intensity target (0 = open-ended) Note: power_low_w / power_high_w are accepted as legacy aliases for intensity_low / intensity_high. Repeat group (for intervals): - repeat (int): number of repetitions - steps (list[dict]): sub-steps (same format as plain steps) Example: [ | |
| sport_type | No | Sport type ID, in the ACTIVITY namespace (the same IDs list_activities returns). Default 2 = Indoor Cycling (indoor trainer). - Cycling: 2 = Indoor Cycling (indoor trainer), 200 = Road Bike (outdoor), 201 = Indoor Cycling (alt) - Running: 100 = Running, 102 = Trail Running, 103 = Track Running Running IDs are mapped internally to the workout-API wire ID (sportType=1) and given the metadata block COROS requires for runs. Do NOT pass 1 directly — it's the internal wire ID and is rejected. | |
| intensity_type | No | Intensity type ID. Defaults per sport when omitted: runs → 2 (HR), cycling → 6 (power in watts). Other IntensityType values: 1=weight, 2=HR, 3=pace, 4=speed, 5=none, 6=power, 7=cadence |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||