> For the complete documentation index, see [llms.txt](https://docs.tryterra.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tryterra.co/planned-workouts-api/sport-specific-examples.md).

# Sport-Specific Examples

> ⚠️ **Pre-Release / Under Construction**
>
> This page is currently **under active development** and is provided in a **pre-release state**.
>
> Content may be **incomplete, outdated, or inaccurate**, and details may changewithout notice as the implementation evolves.
>
> Please use this documentation for **early reference only**, and avoid relying on it for production-critical decisions until the page is marked as stable.

### Running

#### Interval Run with HR Targets

5min warmup → 5x(3min @ 85-90% max HR, 2min easy) → 5min cooldown

```json
{
  "name": "5x3min HR Intervals",
  "sport": "running",
  "step_blocks": [
    {
      "steps": [{
        "completion_condition": { "type": "time", "value": 300 },
        "intensity_type": "warmup"
      }]
    },
    {
      "completion_condition": { "type": "reps", "value": 5 },
      "steps": [
        {
          "completion_condition": { "type": "time", "value": 180 },
          "intensity_type": "active",
          "intensity_targets": [{
            "target_type": "heart_rate_max_percentage",
            "value_low": 85,
            "value_high": 90
          }]
        },
        {
          "completion_condition": { "type": "time", "value": 120 },
          "intensity_type": "rest"
        }
      ]
    },
    {
      "steps": [{
        "completion_condition": { "type": "time", "value": 300 },
        "intensity_type": "cooldown"
      }]
    }
  ]
}
```

Schedule with: `POST /workouts/X/plan?user_id=Y` body: `{ "planned_date": "2026-02-10", "max_heart_rate": 185 }`

#### Tempo Run with Pace Target

20min @ 4:30-4:45/km pace (270-285 sec/km)

```json
{
  "name": "20min Tempo",
  "sport": "running",
  "step_blocks": [
    {
      "steps": [{
        "completion_condition": { "type": "time", "value": 300 },
        "intensity_type": "warmup"
      }]
    },
    {
      "steps": [{
        "completion_condition": { "type": "time", "value": 1200 },
        "intensity_type": "active",
        "intensity_targets": [{
          "target_type": "pace",
          "value_low": 270,
          "value_high": 285
        }]
      }]
    },
    {
      "steps": [{
        "completion_condition": { "type": "time", "value": 300 },
        "intensity_type": "cooldown"
      }]
    }
  ]
}
```

***

### Cycling

#### FTP Intervals

4x8min @ 95-100% FTP with 4min recovery

```json
{
  "name": "4x8min FTP",
  "sport": "cycling",
  "step_blocks": [
    {
      "steps": [{
        "completion_condition": { "type": "time", "value": 600 },
        "intensity_type": "warmup",
        "intensity_targets": [{
          "target_type": "power_percentage",
          "value_low": 50,
          "value_high": 60
        }]
      }]
    },
    {
      "completion_condition": { "type": "reps", "value": 4 },
      "steps": [
        {
          "completion_condition": { "type": "time", "value": 480 },
          "intensity_type": "active",
          "intensity_targets": [{
            "target_type": "power_percentage",
            "value_low": 95,
            "value_high": 100
          }]
        },
        {
          "completion_condition": { "type": "time", "value": 240 },
          "intensity_type": "rest",
          "intensity_targets": [{
            "target_type": "power_percentage",
            "value_low": 40,
            "value_high": 50
          }]
        }
      ]
    },
    {
      "steps": [{
        "completion_condition": { "type": "time", "value": 600 },
        "intensity_type": "cooldown"
      }]
    }
  ]
}
```

Schedule with: `POST /workouts/X/plan?user_id=Y` body: `{ "planned_date": "2026-02-10", "ftp": 280 }`

#### Indoor Cycling with Cadence

Stationary bike workout with cadence targets

```json
{
  "name": "Cadence Drills",
  "sport": "cycling",
  "environment": "indoor",
  "step_blocks": [
    {
      "completion_condition": { "type": "reps", "value": 3 },
      "steps": [
        {
          "completion_condition": { "type": "time", "value": 120 },
          "intensity_type": "active",
          "intensity_targets": [
            {
              "target_type": "power_percentage",
              "value_low": 70,
              "value_high": 80
            },
            {
              "target_type": "cadence",
              "value_low": 100,
              "value_high": 110
            }
          ],
          "notes": "High cadence"
        },
        {
          "completion_condition": { "type": "time", "value": 120 },
          "intensity_type": "active",
          "intensity_targets": [
            {
              "target_type": "power_percentage",
              "value_low": 70,
              "value_high": 80
            },
            {
              "target_type": "cadence",
              "value_low": 60,
              "value_high": 70
            }
          ],
          "notes": "Low cadence / strength"
        }
      ]
    }
  ]
}
```

***

### Swimming

#### Lap Swimming with Strokes

Pool workout with stroke-specific intervals

```json
{
  "name": "Mixed Stroke Workout",
  "sport": "swimming",
  "environment": "pool",
  "pool_length_meters": 25,
  "step_blocks": [
    {
      "steps": [{
        "completion_condition": { "type": "distance", "value": 200 },
        "intensity_type": "warmup",
        "swimming": { "stroke_type": "freestyle" }
      }]
    },
    {
      "completion_condition": { "type": "reps", "value": 4 },
      "steps": [
        {
          "completion_condition": { "type": "distance", "value": 50 },
          "intensity_type": "active",
          "swimming": { "stroke_type": "butterfly" }
        },
        {
          "completion_condition": { "type": "distance", "value": 50 },
          "intensity_type": "rest",
          "swimming": { "stroke_type": "backstroke" }
        }
      ]
    },
    {
      "steps": [{
        "completion_condition": { "type": "distance", "value": 200 },
        "intensity_type": "cooldown",
        "swimming": { "stroke_type": "freestyle" }
      }]
    }
  ]
}
```

#### Swimming with Equipment

```json
{
  "completion_condition": { "type": "distance", "value": 100 },
  "intensity_type": "active",
  "swimming": {
    "stroke_type": "freestyle",
    "equipment": ["swim_paddles", "swim_pull_buoy"]
  }
}
```

**Available strokes:** `freestyle`, `backstroke`, `breaststroke`, `butterfly`, `mixed`, `drill`, `im`

**Available equipment:** `swim_kickboard`, `swim_paddles`, `swim_pull_buoy`, `swim_fins`, `swim_snorkel`

***

### Strength Training

#### Basic Strength Workout

3 sets of 3 exercises

```json
{
  "name": "Upper Body",
  "sport": "strength",
  "step_blocks": [
    {
      "completion_condition": { "type": "reps", "value": 3 },
      "steps": [{
        "completion_condition": { "type": "reps", "value": 10 },
        "intensity_type": "active",
        "notes": "Bench Press",
        "strength": {
          "exercise_name": "BARBELL_BENCH_PRESS",
          "weight": 60,
          "weight_display_unit": "kg"
        }
      }]
    },
    {
      "completion_condition": { "type": "reps", "value": 3 },
      "steps": [{
        "completion_condition": { "type": "reps", "value": 12 },
        "intensity_type": "active",
        "notes": "Rows",
        "strength": {
          "exercise_name": "BENT_OVER_ROW",
          "weight": 50,
          "weight_display_unit": "kg"
        }
      }]
    },
    {
      "completion_condition": { "type": "reps", "value": 3 },
      "steps": [{
        "completion_condition": { "type": "reps", "value": 10 },
        "intensity_type": "active",
        "notes": "Shoulder Press",
        "strength": {
          "exercise_name": "OVERHEAD_PRESS",
          "weight": 40,
          "weight_display_unit": "kg"
        }
      }]
    }
  ]
}
```

#### Exercise Name Flexibility

Garmin exercise names are flexible:

```json
// All of these work:
{ "exercise_name": "BARBELL_BENCH_PRESS" }
{ "exercise_name": "barbell_bench_press" }
{ "exercise_name": "Barbell Bench Press" }
{ "exercise_name": "barbell bench press" }
```

See Exercise Reference for full list.

***

### Multi-Sport (Triathlon)

For triathlon or brick workouts, create separate templates for each sport and schedule them on the same day:

```bash
# Bike portion
POST /workouts/bike_intervals/plan?user_id=X
{ "planned_date": "2026-02-10", "ftp": 250 }

# Run portion
POST /workouts/brick_run/plan?user_id=X
{ "planned_date": "2026-02-10", "max_heart_rate": 180 }
```
