> 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 }
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tryterra.co/planned-workouts-api/sport-specific-examples.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
