Tell us what you own and we'll show you only the steps that apply. Budget about fifteen minutes — less if you're on one device.
Prefer to skip the reading? The Setup page inside the app walks you through these exact steps with one-click links to every page you need — sign in and it takes over from here.
Oura only. One step to connect, one to paste it in. You'll get the full recovery picture — sleep stages, sleep efficiency, HRV, readiness, SpO₂, temperature, stress, resilience, cardiovascular age, all-day heart rate, steps and calories.
Oura + Garmin. The complete setup. Oura automatically takes priority for the overnight and all-day metrics; Garmin supplies workouts, VO₂ max, training load and scale data. Every number in the app is badged with the source that supplied it.
Garmin only. Everything on the training side arrives in full — workouts with GPS, laps and heart-rate zones, VO₂ max and training load — plus sleep duration and score, resting heart rate, HRV, respiration, steps, readiness and SpO₂ if Pulse Ox is on.
Copy the token somewhere safe — you'll paste it into Health Dash → Settings → Setup in the last step.
Without a Garmin, there's no training data. No recorded workouts with GPS, laps or heart-rate zones, no VO₂ max, no training load or fitness/fatigue model, and no weight or body fat. The Activities log stays empty. You can add Garmin later at any time — nothing you set up now needs redoing.
Oura automatically takes priority for overnight and all-day metrics once both sources are connected. You don't have to choose — the merge engine does it for you.
Required
Set up intervals.icu and connect Garmin
intervals.icu is the bridge between Garmin Connect and Health Dash. Create a free account at intervals.icu, then connect Garmin to it:
Still in Settings, open Developer Settings and copy your API key.
Note your Athlete ID — it looks like i123456.
Once Garmin Connect is linked, your activities sync into intervals.icu automatically. You don't need to upload anything by hand.
Bring in your history too: in the same Garmin section, click Download old data and intervals.icu pulls in your recent months of activities and wellness. For anything older, request your full archive from Garmin's data export page and bulk-import the files into intervals.icu (Upload → drag them in) — your whole training history arrives in one go.
You'll need two things from this step: the Athlete ID (i123456) and the API key. Keep them somewhere safe — you'll paste both into Health Dash in the last step.
Sleep stages won't be available. Your Garmin measures sleep stages, but intervals.icu (how Garmin data reaches the app) has no field for them, so they can't be passed through. You'll get sleep duration, sleep score and sleep quality — but not the deep/REM/light breakdown, and not sleep efficiency. All-day heart rate, body temperature deviation, resilience and cardiovascular age are unavailable for the same reason.
Optional
Connect a Garmin Index scale — or set a default weight
If you own a Garmin Index scale, pair it in Garmin Connect. Weight and body fat percentage then flow through the same pipeline as your activities — Garmin Connect to intervals.icu to Health Dash — with nothing to log manually.
If you don't own one, that's fine. Set a default weight in your Health Dash profile and everything that depends on body mass keeps working.
Required
Paste your credentials into Health Dash
Sign in to Health Dash with your beta key, then open Settings → Setup and fill in:
Your Oura personal access token
Your intervals.icu Athlete ID (i123456)
Your intervals.icu API key
Your preferred sleep source — Oura or Garmin/intervals
Save, and the first sync pulls your history in.
From then on the merge engine keeps Oura as the primary source for overnight and all-day metrics and falls back to Garmin where Oura has nothing to say. Every value on screen is badged with the source it came from.
Health Dash degrades gracefully. Whatever you're missing, the pages that don't depend on it carry on as normal.
G What if I only have a Garmin?
The intervals.icu step is all you need. Activities, laps, HR zones, streams, training load, VO₂ max, weight and body fat all arrive through intervals.icu, and the Calendar, Training Plans, Targets and Metrics pages work in full.
Sleep falls back to Garmin/intervals: you get duration and a sleep score, but not the deep/REM/light breakdown. The rings and metrics that need Oura-only inputs — SpO₂, stress, resilience, cardiovascular age, all-day heart rate — sit empty until you add a token.
O What if I only have an Oura?
Sleep architecture, HRV, resting heart rate, readiness, SpO₂, body temperature deviation, stress, resilience, cardiovascular age and all-day heart rate all come straight from the Oura API — that's the majority of the daily dashboard, and the Sleep page in full.
What you won't have is the training side: GPS activities, per-second heart rate, laps, HR zones, running dynamics, training load and VO₂ max all come from the watch. The Activities log stays empty and anything derived from workouts — including Fitness Age's VO₂ max input — has nothing to work from.
Weight, either way. No Index scale means no automatic weight or body fat. Set a default weight in your profile and the rest of the app carries on.