Intervals.icu Integration
Intervals.icu is a free training analysis platform. With one connection FitRepo can:
- Push your FitRepo activities to Intervals.icu.
- Import activities from Intervals.icu — the way to get Garmin and Zwift rides into FitRepo, since those reach Intervals directly.
- Plan — let Claude put workouts and races on your Intervals calendar, and move them later.
Connect your account
Section titled “Connect your account”- In Intervals.icu Settings, scroll to Developer and copy your Athlete ID and API Key.
- Open FitRepo Settings and scroll to the Intervals.icu card.
- Paste your Athlete ID and API Key, then click Connect.
FitRepo verifies the credentials immediately — if they’re wrong you’ll see an error before anything is saved.
Push an activity
Section titled “Push an activity”Once connected, a Push to Intervals button appears on each activity in your FitRepo dashboard.
Clicking it uploads the original FIT file to Intervals.icu. FitRepo tracks the sync status per activity:
| Status | Meaning |
|---|---|
pending | Upload in progress |
synced | Activity exists in Intervals.icu |
failed | Upload failed — hover for the error |
skipped | Auto-sync was off when this activity arrived |
not_connected | Intervals.icu credentials not saved |
needs_reauth | Credentials rejected — re-enter in Settings |
Pushing an already-synced activity is safe — FitRepo returns the existing remote ID without re-uploading.
Disconnect
Section titled “Disconnect”Go to Settings → Intervals.icu and click Disconnect. Your stored credentials are deleted immediately. Activities already synced to Intervals.icu are not affected.
Auto-sync
Section titled “Auto-sync”Once connected, toggle Auto-sync to Intervals.icu in the Intervals.icu settings card. When enabled, every new Wahoo activity is automatically pushed to Intervals.icu as it arrives — no manual action needed.
You can still push individual activities on demand with the Push button, regardless of the auto-sync setting.
- FitRepo pushes FIT files as-is. Intervals.icu processes power, HR, and GPS data from the file.
- Activities without a stored FIT file cannot be pushed.
Import from Intervals.icu
Section titled “Import from Intervals.icu”Garmin, Zwift and other services that sync to Intervals.icu don’t send rides to FitRepo directly. Import them from Intervals instead:
- Backfill page — choose Intervals.icu, pick a date range and start the import. See Importing history.
- Claude — say “backfill new workouts” or “pull in today’s ride from Intervals”.
FitRepo downloads a FIT file for each activity (Intervals generates it from the stored data), parses it, and stores it like any other ride. Activities FitRepo pushed to Intervals are never imported back.
A few things to know:
- Imports don’t run on their own. New Intervals rides appear in FitRepo only when you import them.
- Duplicates across sources. If a ride reaches both Wahoo and Intervals (for example Wahoo auto-syncs to Intervals), importing from both creates two copies. Import from the source the ride was recorded on, or delete the extra copy.
- Intervals sometimes lists one ride twice (e.g. once from Zwift and once as an upload). Both are imported; delete the one you don’t want.
Planned workouts calendar
Section titled “Planned workouts calendar”Once connected, Claude can use your Intervals.icu calendar through the MCP tools:
create_planned_workoutsputs workouts, races and notes on the calendar. Workouts use Intervals’ workout text (percentages are %FTP), so they render as structured sessions.get_planned_workoutsreads them back, so Claude can reschedule or edit a session in place — for example “move any Z2 that falls the day before a long ride” — without creating duplicates.
FitRepo only moves events it created. Events you added in the Intervals UI are shown when asked for, but left alone. Every calendar read and write is logged.
Workouts created this way appear on the Intervals calendar reliably, but may not always sync onward to a connected Garmin the way manually created ones do — check one on your device before relying on it.