create_workout
Only call this after the user has reviewed the proposed workout (exercises, sets, loads, rest mode, supersets) and approved it. Present it for review the way your client supports and get explicit approval first: the LiftTrack app renders this tool's input as an interactive approval card the user accepts or rejects inline (no plaintext restatement needed there), while other clients should show a plaintext summary and confirm. See the server instructions for the full workflow.
Create a workout template. Use exact exercise names from search_exercises.
Each exercise: name, target (reps|time), load (weight|percent), working_rest_mode (timed|off|lap), working_rest_seconds (required when working_rest_mode is 'timed'; omit otherwise), optional warmup_sets[], optional warmup_rest_mode (required when warmup_sets is present; same allowed values as working_rest_mode), optional warmup_rest_seconds (required when warmup_rest_mode is 'timed'), working_sets[] (min 1), and an optional superset label. working_rest_mode 'off' means continue straight to the next set/exercise with no rest. 'lap' means the watch pauses until the user presses the lap button. The same rest setting applies between sets within the exercise and after the exercise's last set (the inter-exercise rest). Each set has reps (when target=reps) or seconds (when target=time), and weight (when load=weight) or percent (when load=percent), plus optional rpe. weight is in the user's units (0 = bodyweight). percent is the percentage of training max itself, e.g. 65 for 65% — pass the percentage, do NOT convert it to a weight. The server computes the weight from the user's training max, and the call fails with a clear error if the exercise has no training max set. superset is an optional short label (case-insensitive, max 16 chars). Exercises sharing a label run as one superset on the watch — at least two exercises must share a label, max 16 distinct labels per workout. Optional folder_name places the workout in that folder; if no folder has that name, one is created. Call get_folders first to reuse an existing folder.
Example with a two-exercise superset: {"name":"Push","exercises":[{"name":"Barbell Bench Press","target":"reps","load":"weight","working_rest_mode":"timed","working_rest_seconds":90,"working_sets":[{"reps":5,"weight":185}],"superset":"A"},{"name":"Cable Row","target":"reps","load":"weight","working_rest_mode":"lap","working_sets":[{"reps":8,"weight":80}],"superset":"A"}]}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| exercises | Yes | ||
| folder_name | No | Optional folder to place the workout in. The folder is created if no folder has this name. Call get_folders to see existing folders. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| set_count | Yes | ||
| folder_name | No | ||
| exercise_count | Yes | ||
| folder_created | Yes |