list_workouts
List workout sessions in a date range plus user-marked Rest Day, Sick Day, or Travel Day context. Day context is returned even when that date has no workout. Treat context labels as explanatory context, not workouts; Travel Day can coexist with training.
Use before get_workout to find a session ID, or to answer training-history questions. Each workout row includes ID, date, focus type, location, and session-level NSI with rating.
DATE RANGE: detailed listings read 90-day slices, with an explicit range limit of 3660 days. Aggregates have no date range limit.
ALL HISTORY: when the user asks for "all", "ever", or their full workout history, set all_history=true. The tool finds the earliest stored workout (respecting activity_type when supplied). For detailed listings, older history beyond 3660 days is reported but not listed. Aggregates cover all stored history.
OUTPUT BOUND: detailed listings emit at most 250 workouts. For totals, averages, minimums, maximums, or counts over any period, set aggregate plus field (except count), and optionally group_by. The aggregate mode reads all matching records in pages and returns only numeric summaries. Never add up a capped listing.
FILTERS: activity_type matches the stored workout focus type case-insensitively. exercise_name keeps only sessions containing that exercise in workout sets. Use activity_type for imported modalities such as Stair Stepper; use exercise_name for strength-history questions. Both filters may be combined.
INFER: default start_date to 7 days ago, end_date to today. User-specified dates or years are authoritative. Widen freely for the period the user actually requested.
SAVED WORKOUTS: set saved_workouts=true to list the user's reusable Saved Workouts library instead of completed workout history. Saved workout IDs are separate from workout session IDs.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | Numeric session field to aggregate. Needed except when counting all sessions. | |
| end_date | No | End of date range. Format: YYYY-MM-DD. Optional — defaults to today. | |
| group_by | No | Group an aggregate by stored local day, month or year; omitted returns one total. | |
| aggregate | No | Return a numeric summary instead of session rows; when omitted, detailed listing behavior is unchanged. | |
| start_date | No | Start of date range. Format: YYYY-MM-DD. Optional — defaults to 7 days ago. | |
| all_history | No | True starts at the earliest stored workout; aggregate mode includes unlimited history, while detailed output keeps its usual cap. | |
| activity_type | No | Stored workout focus type to match case-insensitively, for example Stair Stepper. Defaults to no activity-type filter. | |
| exercise_name | No | Exercise name that must appear in the workout sets, matched case-insensitively. Defaults to no exercise filter. | |
| saved_workouts | No | When true, list reusable Saved Workouts instead of completed workout sessions. Defaults to false. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes | Human-readable result text returned by the tool. |