Create planned workout
create_planned_workoutSchedules a planned workout in the app on a chosen date. Every exercise_id must come from search_exercises or create_custom_exercise — never invented. Not safe to blindly retry: client_request_id makes retries safe — a repeat call with the same ID returns the existing workout instead of creating a duplicate. Supersets and circuits are set with the superset_group label on each exercise — see that field for the rule it requires. A workout can mix strength and conditioning freely: each exercise is measured by its own exercise_type (from search_exercises), so a run, a skipping round or a set of sprints sits in the same list as the lifts — send the targets that type accepts.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Optional note for the whole session, shown in the app. Max 500 characters. | |
| title | Yes | Workout name shown in the app calendar, e.g. "Push day". Max 60 characters. | |
| reminder | No | Push reminder for this session, as an offset before it starts — "oneHour" is one hour before, "thisDay" fires at the workout time itself. Send it ONLY when the user asks to be reminded: leaving it out means no reminder, which is what the app itself does by default. Needs a time in scheduled_for; a date-only session cannot carry a reminder. | |
| exercises | Yes | The exercises in the order they are performed — at least one. | |
| scheduled_for | Yes | ISO 8601 date or datetime as local wall-clock time in the user's own timezone, with NO offset — '2026-08-29' or '2026-08-29T21:00:00' for 9pm where the user lives. A trailing 'Z' or numeric offset is accepted and converted, but plain local time is preferred: it is what the user means and cannot drift a day. | |
| client_request_id | No | Idempotency key. Generate a NEW unique value (e.g. a UUID) for each new workout, and reuse the SAME value when retrying a call that may already have succeeded — a repeat with the same value returns the existing workout instead of creating a duplicate. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| locale | Yes | ||
| web_url | Yes | ||
| warnings | No | ||
| deep_link | Yes | ||
| total_sets | Yes | ||
| workout_id | Yes | ||
| scheduled_for | Yes | ||
| exercise_count | Yes | ||
| display_warnings | No | ||
| estimated_duration_min | Yes |