{"id":17498432,"url":"https://github.com/simonepri/fitbit2garmin","last_synced_at":"2025-04-28T16:05:46.486Z","repository":{"id":202910224,"uuid":"708327059","full_name":"simonepri/fitbit2garmin","owner":"simonepri","description":"⬇ Downloads lifetime Fitbit data and exports it into the format supported by Garmin Connect data importer. This includes historical body composition data (weight, BMI, and fat percentage), activity data (calories burned, steps, distance, active minutes, and floors climbed), and individual GPS exercises (TCX).","archived":false,"fork":false,"pushed_at":"2023-12-17T17:54:12.000Z","size":17,"stargazers_count":74,"open_issues_count":5,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-28T16:05:41.157Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simonepri.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-22T08:16:18.000Z","updated_at":"2025-04-25T09:22:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"849d23a1-30c3-46cb-b7e1-95a9ab28d108","html_url":"https://github.com/simonepri/fitbit2garmin","commit_stats":null,"previous_names":["simonepri/fitbit2garmin"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonepri%2Ffitbit2garmin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonepri%2Ffitbit2garmin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonepri%2Ffitbit2garmin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonepri%2Ffitbit2garmin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simonepri","download_url":"https://codeload.github.com/simonepri/fitbit2garmin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251342723,"owners_count":21574244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-19T16:59:52.585Z","updated_at":"2025-04-28T16:05:46.459Z","avatar_url":"https://github.com/simonepri.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cb\u003efitbit2garmin\u003c/b\u003e\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003c!-- Lint --\u003e\n  \u003ca href=\"https://github.com/simonepri/fitbit2garmin/actions?query=workflow:lint+branch:main\"\u003e\n    \u003cimg src=\"https://github.com/simonepri/fitbit2garmin/workflows/lint/badge.svg?branch=main\" alt=\"Lint status\" /\u003e\n  \u003c/a\u003e\n  \u003cbr /\u003e\n  \u003c!-- Code style --\u003e\n  \u003ca href=\"https://github.com/ambv/black\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/code%20style-black-000000.svg\" alt=\"Code style\" /\u003e\n  \u003c/a\u003e\n  \u003c!-- Linter --\u003e\n  \u003ca href=\"https://github.com/PyCQA/pylint\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/linter-pylint-ce963f.svg\" alt=\"Linter\" /\u003e\n  \u003c/a\u003e\n  \u003c!-- Formatter --\u003e\n  \u003ca href=\"https://github.com/omnilib/ufmt\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/formatter-ufmt-296db2.svg\" alt=\"Formatter\" /\u003e\n  \u003c/a\u003e\n  \u003c!-- Types checker --\u003e\n  \u003ca href=\"https://github.com/PyCQA/pylint\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/types%20checker-mypy-296db2.svg\" alt=\"Types checker\" /\u003e\n  \u003c/a\u003e\n  \u003c!-- Build tool --\u003e\n  \u003ca href=\"https://github.com/python-poetry/poetry\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/build%20system-poetry-4e5dc8.svg\" alt=\"Build tool\" /\u003e\n  \u003c/a\u003e\n  \u003cbr /\u003e\n  \u003c!-- License --\u003e\n  \u003ca href=\"https://github.com/simonepri/fitbit2garmin/tree/main/license\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/simonepri/fitbit2garmin.svg\" alt=\"Project license\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  ⬇ Downloads lifetime Fitbit data and exports it into the format supported by Garmin Connect data importer.\n\u003c/p\u003e\n\n\n## Synopsis\n\nThis package provides a simple python CLI that allows people to download all\ntheir Fitbit data into a format that is supported by Garmin Connect.\n\nThis includes:\n - historical body composition data (weight, BMI, and fat percentage);\n - activity data (calories burned, steps, distance, active minutes, and floors climbed);\n - individual GPS exercises (TCX).\n\n\nDo you believe that this is *useful*?\nHas it *saved you time*?\nOr maybe you simply *like it*?  \nIf so, [support this work with a Star ⭐️][start].\n\n\n## Privacy\n\nThe CLI runs on your computer and your data is only visible and accessible by\nyou. The CLI does not share nor send your data to third parties.\n\n\n## Usage\n\n1. Install the `fitbit2garmin` CLI using the following terminal command:\n```bash\npython -m pip install \"fitbit2garmin@git+https://github.com/simonepri/fitbit2garmin\"\n```\n\n2. Launch the following terminal command from a folder where you\nwant the data to be downloaded replacing `YYYY-MM` with year and month of when\nyou want the exported data to start from:\n```bash\nfitbit2garmin dump-all -s YYYY-MM-01\n```\n\n\u003e Tip: The process will take several hours or even days depending on how many\n        years of data you have. You can speed-up the process by adjusting the\n        start/end date used by the script using the `-s YYYY-MM-DD` and\n        `-e YYYY-MM-DD` flags.\n\n\u003e Tip: You can stop and resume the download at any time by just killing and\n       re-running the above command. The CLI will continue automatically from\n       where it left.\n\n3. From [Garmin Connect][garmin:connect], log into your account then select the\nimport icon in the top right corner of the page (cloud with upward arrow icon).\n\n4. Select Import Data.\n\n5. Select Browse.\n\n6. Locate and select the files exported by the CLI.\n\n\u003e Tip: I strongly recommend to upload up to 1 year of data at a time.\n\n7. Select Import Data.\n\n8. Select the units of measure that match what you used with Fitbit.\n\n\u003e Tip: If you mistakenly import a file using the wrong units of meaures, simply\n       re-import it again. The Garmin Connect importer will replace old imported\n       values automatically.\n\n9. Select Continue.\n\n\u003e Tip: If the import for some file fails, try to refresh the page and re-import\n       then again. The Garmin Importer is smart enough and you won't end-up with\n       duplicated data if you import the same file twice.\n\n10. Uninstall the `fitbit2garmin` CLI using the following terminal command:\n```bash\npython -m pip uninstall fitbit2garmin\n```\n\n## Disclaimer\n\nThis product is not sold or affiliated in any way with Fitbit or Garmin, and\nthey do not service or warrant the functionality of this product.\n\n\n## Development\n\nYou can install this library locally for development using the commands below.\nIf you don't have it already, you need to install [poetry](https://python-poetry.org/docs/#installation) first.\n\n```bash\n# Clone the repo\ngit clone https://github.com/simonepri/fitbit2garmin\n# CD into the created folder\ncd fitbit2garmin\n# Create a virtualenv and install the required dependencies using poetry\npoetry install\n```\n\nYou can then run commands inside the virtualenv by using `poetry run COMMAND`.  \nAlternatively, you can open a shell inside the virtualenv using `poetry shell`.\n\n\nIf you wish to contribute to this project, run the following commands locally before opening a PR and check that no error is reported (warnings are fine).\n\n```bash\n# Run the code formatter\npoetry run task format\n# Run the linter\npoetry run task lint\n# Run the static type checker\npoetry run task types\n```\n\n\n## Authors\n\n- **Simone Primarosa** - [simonepri][github:simonepri]\n\nSee also the list of [contributors][contributors] who participated in this project.\n\n\n## License\n\nThis project is licensed under the MIT License - see the [license][license] file\nfor details.\n\n\n\n\u003c!-- Links --\u003e\n\n[start]: https://github.com/simonepri/fitbit2garmin#start-of-content\n[license]: https://github.com/simonepri/fitbit2garmin/tree/main/license\n[contributors]: https://github.com/simonepri/fitbit2garmin/contributors\n\n[github:simonepri]: https://github.com/simonepri\n[garmin:connect]: https://connect.garmin.com/signin\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonepri%2Ffitbit2garmin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonepri%2Ffitbit2garmin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonepri%2Ffitbit2garmin/lists"}