This project connects your Garmin activities and personal records to your Notion database, allowing you to keep track of your performance metrics in one place.
π Automatically sync Garmin activities to Notion in real-time
π Track detailed activity metrics (distance, pace, heart rate)
π― Extract and track personal records (fastest 1K, longest ride)
π£ Optional daily steps tracker
π΄ Optional sleep data tracker
π€ Zero-touch automation once configured
π± Compatible with all Garmin activities and devices
π§ Easy setup with clear instructions and minimal coding required
- A Notion account with API access.
- A Garmin Connect account to pull activity data.
- If you wish to sync your Peloton workouts with Garmin, see peloton-to-garmin
A detailed step-by-step guide is provided on my Notion template here. For more advanced users, follow these steps to set up the integration:
2. Duplicate my Notion Template
- Save your Activities and Personal Records database ID (you will need it for step 4)
- Optional: Daily Steps database ID
- Look at the URL: notion.so/username/[string-of-characters]
- The database ID is everything after your βusername/β and before the β?vβ
- Go to Notion Integrations.
- Create a new integration and copy the integration token.
- Share the integration with the target database in Notion.
- Environment secrets to define:
- GARMIN_EMAIL
- GARMIN_PASSWORD
- NOTION_TOKEN
- NOTION_DB_ID
- NOTION_PR_DB_ID
- NOTION_STEPS_DB_ID (optional)
- NOTION_SLEEP_DB_ID (optional)
- Run garmin-activities.py to sync your Garmin activities to Notion.
python garmin-activities.py
- Run person-records.py to extract activity records (e.g., fastest run, longest ride).
python personal-records.py
You can customize the scripts to fit your needs by modifying environment variables and Notion database settings.
Here is a screenshot of what my Notion dashboard looks like:
My Notion template is available for free and can be duplicated to your Notion here
- Reference dictionary and examples can be found in cyberjunky/python-garminconnect.
- This project was inspired by n-kratz/garmin-notion.
Contributions are welcome! If you find a bug or want to add a feature, feel free to open an issue or submit a pull request. Financial contributions are also greatly appreciated π
This project is licensed under the MIT License. See the LICENSE file for more details.