BETA: Workout functionality in SweatStack is experimental and subject to breaking changes.
Some functionality may be incomplete or behave unexpectedly. Not recommended for production use.
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the request body
{"properties":{"swf":{"$ref":"#/components/schemas/Workout-Input"},"start":{"type":"string","format":"date-time","title":"Start","description":"Naive local datetime (ISO 8601 without an offset, e.g. `2026-05-25T07:00:00`). A scheduled workout is a plan in the athlete's local wall-clock, so this carries no timezone."},"parameters":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Parameters"}},"type":"object","required":["swf","start"],"title":"ScheduledWorkoutCreate"}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"id":{"type":"string","title":"Id"},"sport":{"type":"string","description":"Sport string in OpenSportTaxonomy format (e.g., 'cycling.road+stationary')"},"start":{"type":"string","format":"date-time","title":"Start","description":"Naive local datetime (ISO 8601 without an offset, e.g. `2026-05-25T07:00:00`). A scheduled workout is a plan in the athlete's local wall-clock, so this carries no timezone."},"swf":{"$ref":"#/components/schemas/Workout-Output"},"parameters":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Parameters"},"application_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Application Id"},"application_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Application Name"},"deliveries":{"items":{"$ref":"#/components/schemas/DeliveryView"},"type":"array","title":"Deliveries"},"warnings":{"items":{"$ref":"#/components/schemas/WorkoutWarning"},"type":"array","title":"Warnings"}},"type":"object","required":["id","sport","start","swf"],"title":"ScheduledWorkoutCreateResponse","description":"Create/update response. Adds `warnings`: a create-time, per-integration compatibility\nheads-up that a plain read (`GET`) cannot recompute, so it lives only here. Empty when every\nconnected integration will consume the workout as-is."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"type":"array","items":{"$ref":"#/components/schemas/ScheduledWorkoutResponse"},"title":"Response List Scheduled Workouts Api V1 Workouts Schedule Get"}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
BETA: Workout functionality in SweatStack is experimental and subject to breaking changes.
Replaces the workout's plan (swf/start/parameters) and re-delivers to connected integrations
in place, preserving the integration-side identity (e.g. the Garmin workout is updated, not
recreated). Best-effort and asynchronous, like create; read deliveries for the outcome.
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the request body
{"properties":{"swf":{"$ref":"#/components/schemas/Workout-Input"},"start":{"type":"string","format":"date-time","title":"Start","description":"Naive local datetime (ISO 8601 without an offset, e.g. `2026-05-25T07:00:00`). A scheduled workout is a plan in the athlete's local wall-clock, so this carries no timezone."},"parameters":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Parameters"}},"type":"object","required":["swf","start"],"title":"ScheduledWorkoutCreate"}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"id":{"type":"string","title":"Id"},"sport":{"type":"string","description":"Sport string in OpenSportTaxonomy format (e.g., 'cycling.road+stationary')"},"start":{"type":"string","format":"date-time","title":"Start","description":"Naive local datetime (ISO 8601 without an offset, e.g. `2026-05-25T07:00:00`). A scheduled workout is a plan in the athlete's local wall-clock, so this carries no timezone."},"swf":{"$ref":"#/components/schemas/Workout-Output"},"parameters":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Parameters"},"application_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Application Id"},"application_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Application Name"},"deliveries":{"items":{"$ref":"#/components/schemas/DeliveryView"},"type":"array","title":"Deliveries"},"warnings":{"items":{"$ref":"#/components/schemas/WorkoutWarning"},"type":"array","title":"Warnings"}},"type":"object","required":["id","sport","start","swf"],"title":"ScheduledWorkoutCreateResponse","description":"Create/update response. Adds `warnings`: a create-time, per-integration compatibility\nheads-up that a plain read (`GET`) cannot recompute, so it lives only here. Empty when every\nconnected integration will consume the workout as-is."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"id":{"type":"string","title":"Id"},"sport":{"type":"string","description":"Sport string in OpenSportTaxonomy format (e.g., 'cycling.road+stationary')"},"start":{"type":"string","format":"date-time","title":"Start","description":"Naive local datetime (ISO 8601 without an offset, e.g. `2026-05-25T07:00:00`). A scheduled workout is a plan in the athlete's local wall-clock, so this carries no timezone."},"swf":{"$ref":"#/components/schemas/Workout-Output"},"parameters":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Parameters"},"application_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Application Id"},"application_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Application Name"},"deliveries":{"items":{"$ref":"#/components/schemas/DeliveryView"},"type":"array","title":"Deliveries"}},"type":"object","required":["id","sport","start","swf"],"title":"ScheduledWorkoutResponse"}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
BETA: Workout functionality in SweatStack is experimental and subject to breaking changes.
Deleting a scheduled workout also removes it from connected integrations (e.g. it is
unscheduled from the user's Garmin calendar). That cleanup is best-effort and asynchronous:
the delete succeeds immediately, and a device-side failure leaves at most a stale entry.
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
Naive local datetime (ISO 8601 without an offset, e.g. `2026-05-25T07:00:00`). A scheduled workout is a plan in the athlete's local wall-clock, so this carries no timezone.
Sport string in OpenSportTaxonomy format (e.g., 'cycling.road+stationary')
start
string(date-time)
Naive local datetime (ISO 8601 without an offset, e.g. `2026-05-25T07:00:00`). A scheduled workout is a plan in the athlete's local wall-clock, so this carries no timezone.
Sport string in OpenSportTaxonomy format (e.g., 'cycling.road+stationary')
start
string(date-time)
Naive local datetime (ISO 8601 without an offset, e.g. `2026-05-25T07:00:00`). A scheduled workout is a plan in the athlete's local wall-clock, so this carries no timezone.