Back to overview

Setup guide

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.

Not sure? Try the live demo

The steps below change to match. Not sure what each setup gives you? Compare the three routes.

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.
  1. Required

    Create an Oura personal access token

    Go to cloud.ouraring.com/personal-access-tokens, sign in with your Oura account, and create a token. It's free and takes about two minutes.

    Copy the token somewhere safe — you'll paste it into Health Dash → Settings → Setup in the last step.

    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.
  2. 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:

    1. In intervals.icu, go to Settings → Integrations → Garmin Connect and authorise the connection with your Garmin account.
    2. Still in Settings, open Developer Settings and copy your API key.
    3. 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.
  3. 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.

  4. Required

    Paste your credentials into Health Dash

    Sign in to Health Dash with your beta key, then open Settings → Setup and fill in:

    1. Your Oura personal access token
    2. Your intervals.icu Athlete ID (i123456)
    3. Your intervals.icu API key
    4. 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.

Partial setups

One device is enough.

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.