icu_create_workout
Save a reusable workout to a library folder or training plan, without scheduling it on the calendar.
Instructions
Save ONE new reusable workout into a LIBRARY folder or training plan — it does not go on the calendar.
To schedule a workout on a date use icu_create_event. For two or more library workouts use icu_bulk_create_workouts; to change a saved one use icu_update_workout. Make a new folder or plan with icu_create_workout_folder, and put a plan's workouts on the calendar with icu_apply_training_plan.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| day | No | PLAN folders only: day offset from plan start (0 = day 1 of week 1, 7 = day 1 of week 2). Omit for plain folders. | |
| name | Yes | Workout name | |
| tags | No | Tags for organizing the library | |
| color | No | Custom display color (hex string) | |
| indoor | No | Mark as an indoor workout | |
| target | No | Device target type: AUTO, POWER, HR, or PACE | |
| folder_id | Yes | Existing library folder or plan ID (from icu_get_workout_library) | |
| athlete_id | No | Athlete ID (for coaches managing multiple athletes) | |
| description | No | Workout steps, parsed the same way as a WORKOUT calendar event. For WORKOUT events the server parses this into structured, device-syncable steps with zones and a training load. Use Intervals.icu workout syntax: one step per line as '- <duration> <target>' (duration FIRST), grouped under Warmup / Main / Cooldown headers. Targets: bike '- 5m 85%', '- 5m Z4', or absolute '- 5m 210w'; HR '- 10m 70-80% HR' or '- 10m 145bpm'; run/swim pace '- 5m Z2 Pace', absolute only with a trailing 'pace' word: '- 5m 4:45/km pace', '- 200mtr 1:45/100m pace' (bare '5:00/km' or '1:45/100m' silently drops); threshold is relative — run '- 25m 100% pace', swim CSS '- 200mtr 100% pace' — the words 'threshold'/'CSS'/'5K pace' are NOT parsed as targets. Add cadence to any step: '- 3m Z2 90rpm'. No target: '- 20m free'. Repeats: put 'Nx' after a section name with steps flat beneath, and leave a blank line before and after the repeat block (without it the repeat silently runs only once) — e.g. 'Main 5x' then '- 3m 110%' / '- 3m 50%'. Ramps: '- 10m ramp 50-70%'. Rest: append 'Ns rest' to a step ('- 200mtr Z2 20s rest') or use a separate '- 20s intensity=rest' step (only intensity=rest exports as a device rest step) — never a bare '- 20s' step (that becomes work, not rest). Durations: 'm'=minutes, 's'=seconds; distance steps use 'mtr'=meters / 'km' / 'yrd' (e.g. swim '- 400mtr Z2 Pace'). Do NOT write '[repeat 5x ...]', nested bullets, or 'Z5 3m' (target before duration). Runs need a pace or HR target — a bare 'Z2' gives no load. Full reference: intervals-icu://workout-syntax resource. | |
| workout_type | No | Activity discipline: Ride, Run, Swim, Walk, Hike, WeightTraining, Workout, VirtualRide, VirtualRun, Other (full discipline list: intervals-icu://event-categories resource) | |
| training_load | No | Planned training load | |
| distance_meters | No | Planned distance in meters | |
| duration_seconds | No | Planned duration in seconds |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |