GarminDB

Download and parse data from Garmin Connect or a Garmin watch, FitBit CSV, and MS Health CSV files into and analyze data in Sqlite serverless databases with Jup

What is GarminDB?

Download and parse data from Garmin Connect or a Garmin watch, FitBit CSV, and MS Health CSV files into and analyze data in Sqlite serverless databases with Jupyter notebooks.

Overview of GarminDB

What it is

GarminDB is a set of Python scripts for parsing health data into and manipulating data in a SQLite database. SQLite is a lightweight database that does not require a server. The scripts can download and parse data from Garmin Connect or a Garmin watch, as well as FitBit CSV and MS Health CSV files.

Key features

  • Automatically download and import Garmin daily monitoring files (all day heart rate, activity, climb/descend, stress, and intensity minutes) from the Garmin Connect “Daily Summary” page.
  • Extract sleep, weight, and resting heart rate data from Garmin Connect, store it as JSON files, and import it into the database.
  • Download and import activity files from Garmin Connect, including a summary table for all activities and more detailed data for some activity types, with lap and record entries.
  • Summarize data into tables containing daily, weekly, monthly, and yearly summaries.
  • Graph data from the command line or with Jupyter notebooks.
  • Retain downloaded JSON and FIT files so the database can be regenerated without reconnecting to or redownloading data from Garmin Connect.
  • Export activities as TCX files.

Use cases

Analyzing health and activity data from Garmin devices, FitBit, and Microsoft Health. Browsing and working with the data using supplied Jupyter notebooks, third-party Jupyter notebooks, or SQLite browsers such as SQLite Studio, HeidiSQL, or DB Browser for SQLite.

Getting started

Install the latest release from PyPI with pip:pip install garmindbCopy the example configuration file to ~/.GarminDb/GarminConnectConfig.json, edit it to add your Garmin Connect username and password, and adjust the start dates. Then run:garmindb_cli.py --all --download --import --analyzeFor incremental updates, add --latest. To back up your database files, run garmindb_cli.py --backup. Alternatively, you can build from source by cloning the repository, running make setup, copying the config file, and then running make create_dbs once, followed by make to keep data up to date. See the repository README for more details.

License and pricing

License: GPL-2.0. This is an open-source project with no stated pricing.

Based on the project's public README and repository metadata.

Add this badge to your README

Featured on YunoDB Badge styles & help

Maintain this project? Show that it is featured on YunoDB.

Markdown[![Featured on YunoDB](https://yunodb.com/badge/tcgoetzgarmindb.svg)](https://yunodb.com/tools/tcgoetzgarmindb?utm_source=github&utm_medium=badge)
HTML<a href="https://yunodb.com/tools/tcgoetzgarmindb?utm_source=github&utm_medium=badge"><img src="https://yunodb.com/badge/tcgoetzgarmindb.svg" alt="Featured on YunoDB" height="20"></a>