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.