A Python script for managing Garmin Connect activities and integrating with Wahoo fitness data. This tool provides utilities for authentication, data synchronization, and activity management across both platforms.
- Install Python and venv
- Create a new venv:
python3 -m venv venv - Activate the venv:
source ./venv/bin/activate(orsource ./venv/bin/activate.fishfor fish shell) - Install all dependencies:
pip install -r requirements.txt - Create a new
.envfile based on.env.sample; a Wahoo API key is required
python main.py <mode>Modes for regular users:
elevationCorrection: Disable elevation correction for all Garmin activities that have it enabled (i.e., use device data instead of Garmin-provided elevation data)wahooImport: Import activities from Wahoo to Garmin Connect that don't already exist; this uses the exact (down to the second) start date of the activitydeleteWahooWorkouts: Delete specific workouts from your Wahoo account by ID (e.g., broken activities that don't have linked .fit files)
Modes for advanced users:
getWahooBearer: Obtain and display a Wahoo API bearer token for manual (e.g.curl) authentication (only useful for debugging)getWahooActivities: Fetch and display all activities from your Wahoo account (only useful for debugging)getGarminActivities: Fetch and display all activities from your Garmin Connect account (only useful for debugging)authenticateGarmin: Authenticate with Garmin Connect and save tokens for future use (only useful for debugging)