Skip to main content

Sync your workouts from Garmin to MyWhoosh

Project description

PyWhooshConnect

Whoosh your Garmin workouts!

Convert your Garmin training plans to MyWhoosh workouts in seconds. Download, convert, upload and ride.

About

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.

Installation

Requirements: Python 3.8+ (tested with Python 3.13)

For Users

Install directly from PyPI:

pip install pywhooshconnect

For Contributors

Clone 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.

Usage

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.

Basic Example

python main.py --user your.email@example.com --sport cycling --from-date 2025-01-01 --to-date 2025-01-07

Authentication

You can provide your Garmin Connect credentials in three ways (in order of priority):

  1. Command-line arguments: --user and --password

  2. Environment variables: Create a .env file in the project root (see .env.example for reference):

  3. Interactive prompt: If credentials are not provided through the above methods, the application will prompt you to enter them at startup.

Configuration File

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.

Output

Workouts are saved as .json files in the directory specified by --output-dir (default: ~/downloads/).

Uploading to MyWhoosh

After downloading your workouts:

  1. Go to MyWhoosh Workout Builder and login in your MyWhoosh account
  2. Select Create New Workout
  3. Click Import workout
  4. Upload the .json file from your output directory
  5. Click Export to MyWhoosh

Your workout will be available in the Custom Workouts section of your MyWhoosh profile.

Contributing

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!

License

PyWhooshConnect is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pywhooshconnect-0.1.0.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pywhooshconnect-0.1.0-py3-none-any.whl (33.5 kB view details)

Uploaded Python 3

File details

Details for the file pywhooshconnect-0.1.0.tar.gz.

File metadata

  • Download URL: pywhooshconnect-0.1.0.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pywhooshconnect-0.1.0.tar.gz
Algorithm Hash digest
SHA256 917acca79332fd9f324d6eb19e6ccc289b5dd3aed840b90d4cbb45a88e2f388e
MD5 4eff845bfa20b54148dbb7fa150b6e7e
BLAKE2b-256 8255c487243dbdf54a3595b23a3dc30c0f6b34cda27dae517067161dbbf84a4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywhooshconnect-0.1.0.tar.gz:

Publisher: cd.yml on federicopellegatta/pyWhooshConnect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pywhooshconnect-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pywhooshconnect-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ebe1480f00232d842d3211e5d44d9b1230cebdf6ff8d600c14c7a7fdf0d7da7
MD5 4538e83c885e356bb66290de1ef149a2
BLAKE2b-256 bd3d2544e96389047b4dadb3efbad01e4b53c370b08ef6fd6fc3c1a2257e667e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywhooshconnect-0.1.0-py3-none-any.whl:

Publisher: cd.yml on federicopellegatta/pyWhooshConnect

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page