update_workout
Only call this after the user has reviewed the proposed change and approved it, following the same approval workflow as create_workout (see the server instructions).
Update an existing workout template. Identify it with workout_name (the exact current name); add workout_folder_name only when several workouts share that name (it is identity only — this tool never moves a workout between folders). Then provide only what changes; omitted fields keep their current values: name: rename the workout. exercises: replace the FULL exercise list. First call get_workout_detail and edit the object it returns (it is already in this exact shape), then pass the complete array back, including exercises you are not changing — the server preserves progression links for exercises that keep their name. The array follows create_workout's schema and rules exactly (exact names from search_exercises, target/load, rest modes, supersets, percent of training max, optional per exercise notes kept to a short cue). A rename needs no prior read: pass workout_name and name only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name for the workout (a rename) | |
| exercises | No | Full replacement exercise list. Read the workout with get_workout_detail first, edit the returned object, and pass the COMPLETE array back, including exercises you are not changing. | |
| workout_name | Yes | Exact current name of the workout to update | |
| workout_folder_name | No | Folder of the target workout, only needed when several workouts share the name. Identity only: this tool never moves a workout between folders. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Final workout name after the update | |
| updated | Yes | Which slices were written | |
| set_count | Yes | ||
| previous_name | No | Present only when the name actually changed | |
| exercise_count | Yes |