Files
garmin-coach-to-cal-sync/docs/limitations.md
2026-06-16 15:14:37 +02:00

2.1 KiB

Limitations

Unofficial Garmin APIs

This project uses private Garmin Connect endpoints through python-garminconnect. Garmin can change authentication, endpoint paths, payload schemas, or rate limits without notice.

Garmin Coach Extraction

Garmin Coach/adaptive cycling workout steps are exposed through the private /workout-service/fbt-adaptive/{workoutUuid} endpoint for the tested account. This is still an unofficial endpoint: Garmin can change it, remove fields, or change authentication without notice.

Garmin Coach Completion

A cloned workout is a separate normal Garmin Connect workout. Completing it may not mark the original Garmin Coach workout complete.

Target Conversion

The first real Coach JSON contains time steps, nested repeats, heart-rate range targets, and instruction targets. Power, cadence, distance, open-ended, and lap-button-until-press targets may still need more examples before conversion can be considered complete.

The CLI performs conservative local validation before upload, but that does not prove Garmin Connect or the Edge 1030 will accept every target detail. It only catches obvious malformed payloads before account writes.

Offline dump analysis is intentionally structural. It can show whether saved JSON contains dated workout-like objects and whether a clone payload can be built, but it cannot prove Garmin Connect upload or Edge behavior.

Device File Fallback

Generating FIT workout files is plausible, but direct device folder scheduling is not yet proven for the Edge 1030. Garmin Connect scheduling remains the safer first path.

Authentication

MFA/token behavior depends on Garmin account state, region, rate limits, and current Garmin SSO behavior. Token files should be treated as sensitive and kept out of git.

Redaction

Debug dumps are redacted on a best-effort basis. The redactor preserves Garmin workout schema identifiers needed for conversion, such as stepTypeId and workoutTargetTypeId, while removing known account, owner, token, email, and device identifier fields. Treat all debug/ files as private anyway.