Insights

Open Wearables 0.6.0: Women's Health & FIT Files

Author
Bartosz Michalak
Published
June 13, 2026
Last update
June 15, 2026

Table of Contents

EXCLUSIVE LAUNCH
AI Implementation in Healthcare Masterclass
Start the course

Key Takeaways

  1. Garmin menstrual cycle tracking is now supported. The Women's Health tab appears only when related data has been synced.
  2. A FIT file parser extracts training segments, HR zones, and power zones automatically. Running dynamics and air temperature require INGEST_WORKOUT_SAMPLES=true.
  3. Second-by-second workout sample ingestion is opt-in via INGEST_WORKOUT_SAMPLES=true. Adds approximately 170 MB per user per month.
  4. Oura HRV is now stored as RMSSD instead of SDNN. Existing values are automatically migrated on startup.
  5. Multi-account sync allows the same device to sync across multiple Open Wearables accounts for testing. No configuration required.

Is Your HealthTech Product Built for Success in Digital Health?

Download the Playbook

Women's Health: Garmin menstrual cycle tracking

Open Wearables 0.6.0 is out. This release adds menstrual cycle tracking for Garmin, a FIT file parser with second-by-second workout sample ingestion, a batch of Oura reliability fixes, multi-account sync support, and Redis TLS. 30+ pull requests, three new contributors.

Open Wearables now supports menstrual cycle tracking for Garmin wearables. The new Women's Health tab surfaces this data in the admin panel and is only visible when the user has actually synced related data. If the user hasn't, the tab doesn't appear.

This matters because women's health data has historically been an afterthought in health platforms. Menstrual cycle data affects readiness, HRV, sleep quality, and training capacity in ways that make it load-bearing for any serious health intelligence product. Having it in the unified data model means it can be correlated with other physiological signals rather than living in a separate silo.

The implementation follows the same pattern as other Garmin integrations: data arrives via webhook, gets normalized, and is available through the API.

FIT file parser and high-granularity workout data

This is the most technically significant addition in 0.6.0.

FIT files are the native format Garmin uses to record workouts. They contain data at a resolution that summary endpoints don't expose: second-by-second measurements for heart rate, speed, cadence, power, GPS coordinates, and elevation. For applications that need to reason over the shape of a workout rather than just its aggregate output, this is the data layer that makes it possible.

What the parser extracts from FIT files (always available):

  • Training segments: laps, swim lengths, and other structured breakdowns of a workout
  • Time in heart rate zones
  • Time in power zones

Available with INGEST_WORKOUT_SAMPLES=true:

  • Air temperature
  • Running dynamics: vertical oscillation, vertical ratio, stride length, ground contact time, and stance time balance

Second-by-second sample ingestion is available as an opt-in feature. Set INGEST_WORKOUT_SAMPLES=true to enable it. Disabled by default: our benchmarks show approximately 170 MB of additional database usage per user per month. Enable it when you need it; leave it off when you don't.

FIT files themselves can optionally be archived to S3 by setting STORE_FIT_FILES=true. Useful for debugging, auditing, and reprocessing scenarios. Adds a few to a dozen MB per user per month depending on workout frequency.

The FIT file parser is provider-agnostic by design. It's built to eventually support other devices that use the FIT format, not just Garmin.

Oura bug fixes

Several bugs in the Oura integration have been fixed in this release.

Time zone offset is now saved correctly to the database, which was causing silent data quality issues for users outside UTC. Sleep summary metrics are now correctly captured. The polling logic for current day summaries was dropping data under certain conditions; this has been fixed.

The most significant change: HRV is now stored as RMSSD instead of SDNN. RMSSD is the standard for overnight HRV measurement. SDNN is a different metric that's appropriate for different contexts. These aren't interchangeable, and the previous implementation was mapping one to the other. Existing SDNN values in the database will be automatically migrated to RMSSD when the application starts after upgrading.

If you were using Oura HRV data and building logic on top of it, review this change before upgrading. The migration runs automatically but the values will differ.

Multi-account sync

A new feature for teams who need to synchronise the same device with several Open Wearables accounts for testing purposes. 0.6.0 adds dedicated support for this.

No configuration required. Pair the relevant accounts with your wearable account. A badge will appear in each account indicating which accounts are linked and the current sync status for each. Instead of attempting to sync the same data from the provider multiple times (which Garmin's backfill restrictions make practically impossible), the data is synced once from the source and then copied to the linked accounts.

More detail in the multi-account sync documentation at openwearables.io/docs/architecture/multi-account-sync.

Other changes worth noting

Redis TLS support. Set REDIS_SSL=true to enable rediss:// connections. Required for managed Redis instances that enforce TLS.

Sleep start time display. Sleep sessions that begin before midnight are now prefixed with the previous day's name in the admin panel. The display now reflects the user's time zone and makes the day boundary explicit.

Webhook management endpoints. A set of new endpoints for programmatic webhook management has been added, making it easier to configure integrations without going through the admin panel.

Suunto resting heart rate. Resting heart rate is now emitted from sleep HRMin data, a field that was previously unused.

Polar sport types. Indoor cycling, jump rope, and kickboxing/martial arts now map to discrete identifiers rather than a generic fallback.

Version visibility. The current Open Wearables version is now shown in the admin panel under the logout button.

Upgrading

Standard Docker Compose update. There are database migrations that run automatically on startup, including the Oura HRV SDNN-to-RMSSD migration. Review the migration before upgrading if you have downstream logic that depends on Oura HRV values.

docker compose pull
docker compose up -d

The full changelog is on GitHub at github.com/the-momentum/open-wearables/releases/tag/0.6.0.

Community

The project is at github.com/the-momentum/open-wearables. If you're building something with it or have questions, the Discord community is the fastest place to get a response.

From Wearable Data to Health Intelligence

If your team has the data flowing and is now figuring out what to do with it, that is the starting point for Signal. Momentum's delivery framework for wearable health intelligence: Blueprint maps your use case, Foundation connects the data sources and deploys the intelligence layer, Intelligence lands coaching, insights, or dashboards inside your app. We bring the integrations, the data layer, and the intelligence. Your team ships the experience.

Frequently Asked Questions

What is new in Open Wearables 0.6.0?
0.6.0 adds Garmin menstrual cycle tracking, a FIT file parser with second-by-second workout sample ingestion, several Oura reliability fixes including RMSSD HRV migration, multi-account sync support, and Redis TLS. No breaking changes to the API.
What data does the FIT file parser extract?
The parser always extracts training segments (laps, swim lengths), time in heart rate zones, and time in power zones. With INGEST_WORKOUT_SAMPLES=true enabled, it additionally extracts air temperature and running dynamics: vertical oscillation, vertical ratio, stride length, ground contact time, and stance time balance.
What is INGEST_WORKOUT_SAMPLES and should I enable it?
INGEST_WORKOUT_SAMPLES=true enables second-by-second granularity for Garmin workout data: heart rate, speed, cadence, power, GPS coordinates, elevation, air temperature, and running dynamics. It is disabled by default because it adds approximately 170 MB of database usage per user per month. Enable it only when your use case requires this resolution.
Does the Oura HRV change require manual action when upgrading?
No manual action required. Oura HRV is now stored as RMSSD instead of SDNN. Existing SDNN values in the database are automatically migrated when the application starts after upgrading. If you have downstream logic that depends on Oura HRV values, review those before upgrading as the values will differ.
What is multi-account sync in Open Wearables?
Multi-account sync allows the same physical wearable device to sync data across multiple Open Wearables accounts, which is useful for testing purposes. No configuration is required. Pair the relevant accounts with your wearable account and data will be synced once from the source and copied to linked accounts. A badge in each account shows which accounts are linked and their sync status.
How do I upgrade to Open Wearables 0.6.0?
Run docker compose pull followed by docker compose up -d. Database migrations run automatically on startup, including the Oura HRV RMSSD migration. Review any downstream logic that depends on Oura HRV values before upgrading.

Written by Bartosz Michalak

Director of Engineering
He drives healthcare open-source development at the company, translating strategic vision into practical solutions. With hands-on experience in EHR integrations, FHIR standards, and wearable data ecosystems, he builds bridges between healthcare systems and emerging technologies.

See related articles

Integrate wearable data without the integration overhead

Let's Create the Future of Health Together

Open Wearables handles provider authentication, webhook delivery, health score computation, and sync observability in a self-hosted, MIT-licensed package. Talk to the Momentum team about deploying it for your use case.

Looking for a partner who not only understands your challenges but anticipates your future needs? Get in touch, and let’s build something extraordinary in the world of digital health.

Newsletter

Bartosz Michalak