Whoosh your Garmin workouts!
Convert your Garmin training plans to MyWhoosh workouts in seconds. Download, convert, upload and ride.
PyWhooshConnect is a command-line tool that synchronizes your Garmin Connect workouts and converts
them into MyWhoosh-compatible format. It automatically fetches your scheduled workouts from Garmin
Connect, converts them to .json files, and prepares them for upload to MyWhoosh.
The tool supports multiple sports (cycling, running, cross-country skiing) and allows flexible configuration of power zones and workout parameters through YAML configuration files.
Requirements: Compatible with Python 3.10–3.13
Install directly from PyPI:
pip install pywhooshconnectClone the repository and install in development mode:
git clone https://github.com/federicopellegatta/pyWhooshConnect.git
cd pyWhooshConnect
pip install -e ".[dev]"Note: This tool uses garminconnect library to interact with Garmin Connect API.
Run the application from the command line:
python main.py [OPTIONS]For a complete list of available options and their descriptions, run python main.py --help.
python main.py --user your.email@example.com --sport cycling --from-date 2025-01-01 --to-date 2025-01-07You can provide your Garmin Connect credentials in three ways (in order of priority):
-
Command-line arguments:
--userand--password -
Environment variables: Create a
.envfile in the project root (see.env.examplefor reference): -
Interactive prompt: If credentials are not provided through the above methods, the application will prompt you to enter them at startup.
You can customize power zones and workout parameters using a YAML configuration file with the
--config-file option.
If no configuration file is specified, the tool uses the default configuration from
config/power_zones_config.yml.
Workouts are saved as .json files in the directory specified by --output-dir (default:
~/downloads/).
After downloading your workouts:
- Go to MyWhoosh Workout Builder and login in your MyWhoosh account
- Select Create New Workout
- Click Import workout
- Upload the
.jsonfile from your output directory - Click Export to MyWhoosh
Your workout will be available in the Custom Workouts section of your MyWhoosh profile.
If you wish to contribute or you have just found any bug, please open an issue or a pull request on our GitHub repository. Thank you!
PyWhooshConnect is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.