Garmin-intervals-bridge – your complete Garmin FIT files and wellness data in Intervals.icu, with or without the official Garmin integration

0.6.0 is out: ImReady4’s training advice, without the morning MATLAB step.

If you use ImReady4 (by @Inigo_Tolosa and @MedTechCD) for HRV-guided training, the bridge can now do the daily run for you: right after its morning read – about ten minutes after your watch syncs – it calculates the advice from Intervals’ HRV and resting HR and writes Rest / LIT / Planned / HIT into your existing TrainingAdvice field. Same inputs, same 30-day z-scores, same zones as the script; on my account it agrees with ImReady4’s own results on 97.6 % of 1,225 days.

  • Off by default. Switch it on with BRIDGE_IMREADY4_ENABLED=true (systemd env file, -e for a container, the .env file on Windows/Mac).
  • Needs: the TrainingAdvice wellness field from ImReady4’s guide (a select with 1 Rest, 2 LIT, 3 Planned, 4 HIT – the bridge finds it, never creates or changes it), and HRV + resting HR on at least 14 of the last 30 days.
  • Safe: it never overwrites a value that’s already there (yours or the script’s), never touches a locked day, writes only that one field, reads it back and does it once a day. If the night’s values are late it waits and retries; if they never come, there’s simply no advice that day. Intervals requests only, no extra Garmin calls.
  • See it first: garmin-intervals-bridge imready4 shows today’s advice with the z-scores and the reference, as a dry run; garmin-intervals-bridge imready4 --from 2026-01-01 --compare compares it with what your field already holds; --apply fills days that have none.

Upgrade: pip install -U garmin-intervals-bridge or pull the new image (ghcr.io/futureweb/garmin-intervals-bridge:0.6.0 / futurewebat/garmin-intervals-bridge:0.6.0), then set the variable. Details: docs/IMREADY4.md · release notes.

Sources: