Garmin Connect
integrationDirect access to your Garmin Connect activities, wellness data, and devices
Tier-1 integration with Garmin Connect. Lists activities, fetches activity detail and time-series streams, and pulls wearable-only health and training intelligence Garmin captures natively: body battery, sleep stages, HRV status, training status, training readiness, VO2 max, and device inventory. Designed to be composed by fitness and training agents, but also chattable directly for ad-hoc questions like "how did I sleep last night" or "am I ready to train hard today".
Source: Garmin Connect
Peers (5)
Gym Buddy
Your personal workout encyclopedia
Intervals Agent
AI cycling coach powered by intervals.icu
Mind Body
Recovery, mobility, and a calmer mind, matched to your training
Run Club
Your running coach: plans, paces, and race prep
Sleep Coach
Better sleep starts tonight
Tools (32)
Get user profile
Fetch the authenticated user's Garmin profile: display name, gender, birth date, weight, height, current VO2 max (run + bike), lactate threshold, FTP auto-detected flag, measurement system, and time format. Call this once per conversation if you need the user's measurement preference or VO2 max baseline.
List devices
List devices linked to the user's Garmin account: model, battery level and status, current firmware, last sync time. Use to answer 'is my watch synced' or 'what's my battery at' questions, or before recommending a sync before a workout.
List activities
List the user's recent Garmin activities with summary fields (activity name + type, start time, distance, duration, average and max HR / power, TSS, intensity factor, calories, elevation). Bound the window with ``start_date`` and ``end_date`` as ISO 8601 dates ('2026-04-11'); when omitted the API returns a paged recent-activity list. Always anchor on Today's date from get_instructions when interpreting 'this week', 'last weekend', etc.
Get activity
Fetch the full detail for a single Garmin activity by id. Returns summary fields plus description, device, location, lap-by-lap breakdown, and any structured exercise sets. Use list_activities first to find the id.
Get activity splits
Fetch lap / split breakdown for a Garmin activity: per-lap distance, duration, average speed, average HR, average power, and elevation. Smaller and more useful than streams for structured workouts and pacing analysis.
Get activity streams
Fetch downsampled time-series streams for a Garmin activity: heart rate, power, cadence, speed, altitude, GPS. Garmin returns this as a `metricDescriptors` + `activityDetailMetrics` pair; passing a smaller ``max_chart_size`` makes the response cheaper. Use sparingly โ even downsampled, multi-hour activities are thousands of points.
Get daily summary
Fetch the user's daily wellness rollup: steps, step goal, calories (total / active / BMR), intensity minutes (moderate + vigorous) against goal, floors climbed, resting / min / max HR, average and max stress, and body battery range. Call this once per day-question (e.g. 'how was yesterday').
Get sleep
Fetch the user's sleep summary for a single night: total sleep time, deep / light / REM / awake breakdown, sleep score, respiration range, SpO2 range, restless moments. The date you pass is the *wake-up* date โ i.e. asking for last night's sleep uses today's date.
Get body battery
Fetch the user's Body Battery readings (Garmin's energy / recovery score, 0-100) over a date range. Returns one entry per day with charged / drained / highest / lowest values. Body Battery is wearable-only and one of Garmin's strongest signals for whether the user is recovered.
Get stress
Fetch the user's stress-level samples for a single day (0-100, intraday). Returns Garmin's full stress payload including the per-minute series and rest / low / medium / high duration buckets.
Get hrv status
Fetch the user's HRV status for a single night: weekly average HRV, baseline range, status (BALANCED, UNBALANCED, LOW, POOR), and the overnight readings. HRV status is wearable-only and Garmin's best single recovery indicator alongside Body Battery.
Get heart rates
Fetch the user's heart-rate envelope for a single day: resting, minimum, maximum, last seven days resting average, plus the intraday `heartRateValues` time-series.
Get steps
Fetch the user's intraday steps for a single day, bucketed by Garmin's native 15-minute windows: each bucket includes start time, total steps, primary activity level, and a flag for active vs sedentary classification.
Get intensity minutes
Fetch the user's intensity minutes for a single day: moderate and vigorous totals, weekly running total, and the goal. Garmin counts vigorous minutes double toward the goal.
Get weight
Fetch the user's weigh-ins and Index-scale body composition (body fat %, muscle mass, water %, bone mass, BMI) over a date range. Returns one entry per logged weigh-in.
Get training status
Fetch the user's Garmin training-status snapshot: status label (PRODUCTIVE, MAINTAINING, RECOVERY, OVERREACHING, etc.), feedback phrase, weekly load against the optimal load tunnel, current VO2 max, and fitness age. Wearable-only signal that Strava and intervals.icu don't reproduce natively.
Get training readiness
Fetch the user's Garmin training-readiness for a day: 0-100 score, level (LOW / MODERATE / HIGH), the long and short feedback strings, and the contributing factors (sleep score, recovery time remaining, HRV factor, stress history, acute load). Use to answer 'should I train hard today'.
Get vo2 max
Fetch the user's max-metrics for a date: VO2 max for running and cycling (when available), fitness age, and the latest max-HR estimate. Garmin updates these on a rolling basis from outdoor / power-meter activities.
Get race predictions
Fetch Garmin's running race-time predictions for the user: 5K, 10K, half marathon, marathon. Predictions are derived from VO2 max and recent training load.
Get personal records
Fetch the user's Garmin personal records: best 1K / 5K / 10K / half-marathon / marathon, longest run, longest ride, biggest climb, and any sport-specific PRs Garmin tracks. One entry per record type.
Rename activity
Rename a Garmin activity (set its title). Garmin is the source of truth, so the new title propagates to Strava / intervals.icu on their next sync. Use list_activities to find the id. Common use: strip auto-generated prefixes like 'Zwift - ...' from imported rides.
Set activity description
Set or replace a Garmin activity's description text. Overwrites any existing description. Use list_activities to find the id.
Set activity type
Change a Garmin activity's sport type (e.g. mark a mislabeled ride as 'gravel_cycling', or a walk as 'hiking'). Pass the Garmin ``type_key``; the tool resolves the internal type ids. Changing type can recompute training load, so confirm the activity with the user first. Use list_activities to find the id.
Delete activity
Permanently DELETE a Garmin activity. DESTRUCTIVE and unrecoverable: the activity and its recorded data are gone, and the deletion syncs to Strava / intervals.icu. Only call when the user explicitly asks to delete it. The ``confirm`` argument must exactly match the activity's current name: fetch it with get_activity and read it back to the user before they confirm.
Create manual activity
Log a manual Garmin activity (no GPS/sensor file) โ e.g. a strength session, a walk, or an indoor ride from a non-connected machine. Distance and duration are summary values you supply.
Create workout
Push a structured/planned workout to Garmin Connect โ the equivalent of authoring a workout in Garmin's workout builder so it lands on the user's watch. Supply the session a coach has already designed as an ordered list of steps (warmup, work intervals, recovery, cooldown, and repeat groups for run/walk or interval sets), each ending on time, distance, or the lap button, with optional pace or heart-rate targets. Pass schedule_date (YYYY-MM-DD) to also pin it to the Garmin calendar for that day so it syncs to the watch; omit it to just save the workout to the library. You translate a session into steps; you do not invent the training โ that is the caller's job.
List workouts
List saved workouts in the user's Garmin workout library (most recent first): id, name, sport, and step count. Use to find a workout id for delete_workout, or to avoid creating a duplicate.
Get workout
Fetch the full step breakdown of one saved Garmin workout by id: every step's kind (warmup / work / recovery / cooldown / rest), how it ends (time, distance, or lap button), and any pace or heart-rate target, with repeat groups preserved. Use after list_workouts when the user wants to see what's inside a workout. Pace targets are returned in seconds-per-km plus a readable 'M:SS/km' display.
Delete workout
Permanently delete a workout from the user's Garmin workout library (this also removes any scheduled instances of it). DESTRUCTIVE: the ``confirm`` argument must exactly match the workout's current name. Fetch it with list_workouts, read the name back to the user, and only pass ``confirm`` once they've confirmed that exact workout.
Add weigh in
Log a manual weigh-in to Garmin Connect. Use get_weight to read back logged weigh-ins. Defaults to kilograms and now; pass an ISO 8601 timestamp to backdate.
Add hydration
Add a hydration (water intake) entry to a Garmin day, in milliliters. Defaults to today; pass ``cdate`` (ISO date) to log against another day.
Set blood pressure
Log a blood-pressure reading (systolic / diastolic / pulse) to Garmin Connect. Defaults to now; pass an ISO 8601 timestamp to backdate.
Chat with Garmin Connect
Open chat