Changelog
Updates that affect how you use IcuSync with Claude.
New tools available. To get the latest tools, click the three-dot menu next to IcuSync in your Claude Customize settings and select Refresh tools list, then start a fresh conversation. If that does not work, disconnect and reconnect instead.
3 Sep 2026
- Added
get_interval_intensity_statsfor interval and lap sessions where the plain per-rep average is misleading: it slices the power or speed stream to each interval boundary server-side and returns the median, the interquartile range, the coefficient of variation, and asettled_meanthat excludes the lead-in ramp (auto-detected, or a fixedwarmup_trim_seconds). A 4 min rep whose average reads low because the first 15s were spent spinning up now shows what was actually held once up to effort. Pass an optional target band (target_low/target_high, in watts or in pace) and each interval also reports time in band, time easier than target, and time harder than target. Works for any activity with defined intervals and a power stream (Ride, Rowing, power-based Run) or a speed stream (Run, Ride, Walk, Hike, Swim);metricforces power or pace. Only the computed summary is returned. Raw stream data is never sent to Claude. get_activity_detailandget_training_historynow returnelapsed_time_seconds(wall-clock time from start to finish, including every stop) andmoving_time_seconds(stops excluded) alongside the existingduration_minutes. Previously only moving time was exposed, so ultra-distance and brevet analysis (time cuts, overnight and drop-bag planning) had no access to an activity's true elapsed time even though intervals.icu records it.
26 Aug 2026
- Added
get_ride_power_patternsfor Ride activities: coasting time split into short coasts (a few seconds, still part of an effort, e.g. between pedal strokes on technical trail) versus long coasts (genuine rest, a sustained descent or a stop), plus detection of repeated short hard/easy burst patterns (unplanned on-off intervals) common on technical MTB, cyclocross, gravel, or criterium terrain. Zone-time totals and average power hide both of these on rolling, technical terrain: a ride can show an unremarkable average and TSS while actually being a repeated sequence of hard efforts. Only the computed summary (coasting split, and each detected burst block's cycle count, average on/off duration, and average on-power) is returned. Raw power stream data is never sent to Claude. Requires a power meter; Ride activities only (including MTB, gravel, cyclocross, and virtual rides). - Updated
get_extended_metricsreturns whole-activity W' balance depletion:w_prime_balance_min_pct(the lowest the W' reserve dropped to, as a percentage of capacity) andw_prime_balance_seconds_below_25pct(how long the ride spent in a deeply depleted state). Previously only a plain average was available, which hides the difference between a ride that never troubled the reserve and one that ran it near empty despite an identical average.
16 Aug 2026
- Added
get_climb_segmentsto detect sustained climb segments in an activity and compute VAM (Vertical Ascent in Meters per hour) for each: which climbs were steepest, which had the best VAM, how HR or power held up on a specific climb. Works for Ride as well as Run, Hike, and Walk. For rides with a power meter, each climb also gets its average power alongside VAM and grade. Useful for cycling climbing analysis as well as mountain, trail, and ultra training. The altitude/distance stream is resampled server-side at 50m resolution to detect climbs reliably, bridging short flat or downhill sections mid-climb (a "shelf") so a climb that briefly flattens is reported as one segment rather than split into several. Bridging is bounded by both distance (max_gap_m) and elevation lost (max_gap_elevation_loss_m) so it can't stretch across a real descent, and an optional min_elevation_gain_m filters for major climbs only. Only the computed climb list is returned. Raw stream data is never sent to Claude. Requires outdoor activities with GPS or barometric altitude.
13 Aug 2026
- Updated
get_activity_detailreturnsdistance_splits: exact fixed-distance splits computed directly from the GPS/distance stream, independent of workout-structure or device-lap boundaries. Previously, per-interval pace was only as precise as whatever segments a structured workout or device auto-lap produced, which could be off by several seconds per km when a "main set" segment didn't land on a clean distance boundary. Available for Run and Ride activities of at least 1km (or 1mi), with pace (or speed in km/h/mph for rides), HR, power, cadence, and elevation gain per split. Swim activities get splits every 100m with/100mpace, matching how swimmers think about pace regardless of km/mi preference.
26 Jul 2026
- Added
update_sport_settingsto write threshold values back to intervals.icu. Claude can now update your FTP, threshold pace, LTHR, max HR, and W' for Run, Ride, and Swim directly, for example after a ramp test, a zFTP update, or when the built-in threshold accuracy check flags your settings as out of date. Claude always shows you the current value and the proposed new value and asks for confirmation before writing anything. Power and pace zones are stored as percentages of FTP/threshold pace in intervals.icu, so they stay correct automatically when you update those values. HR zones are stored as absolute bpm and are left untouched unless you specifically ask Claude to regenerate them, since that would overwrite any HR zones you have customized manually. Only these threshold fields are writable: zone boundaries, custom activity fields, and other sport settings must still be edited directly in intervals.icu. - The intervals.icu OAuth connection now requests Settings Update permission alongside the existing read permissions. Existing users need to grant this before
update_sport_settingswill work. You can do this by going to intervals.icu Settings, Apps, finding IcuSync and clicking edit to add the Settings update permission. Alternatively, reconnect your intervals.icu account from the IcuSync dashboard.
24 Jun 2026
- Updated
get_power_curvesto support durability ("after kJ") power curves. You can now ask for your power curve after a set amount of accumulated work, for example "show my power curve after 1000 kJ over the last 90 days", to see how your power holds up in a fatigued state and track durability over time. First set one or both "? kJ" thresholds on your Intervals.icu power curve page (click a "? kJ" label on the chart, enter a value such as 1000, wait for it to compute, then tick the box). The tool reads those configured thresholds and returns the work level alongside each curve. Requires ride activities with power data.
23 Jun 2026
- Direct Intervals.icu coach mode now works via API key. If you already coach athletes on Intervals.icu, go to Coach Access in your IcuSync dashboard, enter your Intervals.icu API key (found under Intervals.icu Settings → API Key), and save. IcuSync verifies the key against your coached athlete list and activates coach mode automatically. Claude will then see all your coached athletes with no setup required on their end. All 15 tools are available for every athlete. The earlier approach of connecting via OAuth for coach access did not work due to a privacy restriction in the Intervals.icu API: OAuth tokens are locked to the authenticated user's own data and cannot access coached athletes. The API key approach does not have this restriction.
Update: following community feedback, coaches must now confirm they have informed their athletes before activating coach mode. Athletes also receive an automatic notification email when a coach activates access. The privacy policy and terms have been updated to cover coach access explicitly.
16 Jun 2026
- Added
update_activityto write post-activity data back to intervals.icu. After a session, ask Claude to log how many grams of carbs you consumed, how the effort felt (feel score and RPE), which shoes or bike you used, or any values for custom Activity Fields you have configured in intervals.icu (e.g. lactate, pain scores, test results). Only the fields you provide are changed; everything else is left untouched. Strava-sourced activities cannot be updated via the API and must be edited directly in intervals.icu.
14 Jun 2026
- Pace ranges, watt ranges, and HR zone ranges now pass through directly to intervals.icu instead of being collapsed to a midpoint. When you ask Claude to push a workout with a range like 5:30/km–6:00/km or 240–260w, Garmin will show exactly that window rather than a single midpoint value matched to the nearest zone. If you want a midpoint, just ask Claude to calculate one before pushing.
- Custom Activity Fields are now included in
get_extended_metrics. Any fields you have configured in intervals.icu Settings → Activity Fields (e.g. lactate, RPE, pain scores, lab test results) now appear in the response alongside sensor streams, so Claude can factor them into analysis. - Updated
push_workoutandedit_workoutto support two new fields visible in the intervals.icu calendar entry dialog:carbs_per_hour(CHO/h fueling target in grams per hour) andload_target(planned training load). Both fields are also now returned byget_events.
8 Jun 2026
- Gear is now visible to Claude. The bike, shoes, or other equipment logged against an activity in intervals.icu is now returned by both
get_activity_detailandget_training_history. Claude can use this to distinguish rides done on different bikes (road, TT, MTB, gravel) and factor equipment into analysis and comparisons. - Manually added intervals are now correctly identified. Intervals you add yourself in the interval editor have no
group_id, while auto-detected intervals always belong to a group. Claude uses this to setinterval_sourcetomanually_added,auto_generated,mixed, ordevice_laps. Interval groups are also now visible with aggregate metrics per group (count, duration, average power, average HR).
5 Jun 2026
- Sport settings validation added to
get_athlete_profile. At the start of every session Claude now checks whether your configured sports have the threshold values and training zones needed for accurate analysis. The check is sport-aware: it only validates sports you have actually set up in intervals.icu, so a runner will never see a cycling warning and a cyclist will never see a swim warning. If something is missing, Claude will surface the specific fix steps before proceeding. - Threshold accuracy check added. When asking for a training plan or performance analysis, Claude now cross-references your configured thresholds against your actual recorded efforts. For cyclists, it compares your FTP against recent peak power data. For runners, it compares your threshold pace against recent race efforts, and your Critical Power against recent power curve data if you train by power. For swimmers, it compares your threshold pace against recent best efforts. If your settings appear significantly out of date, Claude will flag the specific value and tell you exactly where to update it. This check only runs when relevant and is skipped for simple data lookups.
3 Jun 2026
- Added direct Intervals.icu coach access. Coaches who already have coaching relationships on Intervals.icu can access all their coached athletes through Claude with no athlete setup required. Athletes do not need an IcuSync account. This is in addition to the existing IcuSync invite system, which remains unchanged. See the 23 Jun 2026 entry for setup instructions. The initial OAuth-based approach was replaced with API key auth.
26 May 2026
- Claude now checks your current training load and recovery status before recommending or creating a training plan. Get Wellness and Get Fitness are called automatically to assess ATL, CTL, and TSB so that workout prescriptions reflect your actual fatigue state rather than an assumed baseline.
- Tags are now visible to Claude. Activity tags you apply in intervals.icu (e.g. Z2, Intervals, Threshold) are now returned by
get_training_historyandget_events, so Claude can filter and analyse your training by tag.
10 May 2026
- Added
push_wellnessto write wellness data back to intervals.icu. Claude can now log daily nutrition totals (kcal, carbohydrates, protein, fat) from a food tracking source, subjective scores (fatigue, soreness, mood, motivation, stress on a 1-5 scale), body weight, and daily notes. Only the fields provided are updated. Device-synced data such as HRV, sleep, and resting HR is left untouched. - The intervals.icu OAuth connection now requests Wellness Update permission alongside the existing Wellness Read permission. Existing users need to grant this permission before push_wellness will work. You can do this by going to intervals.icu Settings, Apps, finding IcuSync and clicking edit to add the Wellness update permission. Alternatively, reconnect your intervals.icu account from the IcuSync dashboard.
4 May 2026
- Updated
get_wellnessto include carbohydrate, protein and fat intake (in grams) alongside the existing kcal field. Data is only populated if the athlete logs food in intervals.icu.
1 May 2026
- Updated
push_workoutwith day of week validation. If Claude calculates the wrong date for a given day (for example, thinking Monday is May 5 when it is actually May 4) the server catches the mismatch and returns the corrected date so it can be fixed before landing on your calendar. - IcuSync now works with ChatGPT following the addition of MCP support in ChatGPT Developer Mode. Reading training data works reliably. Creating structured workouts is supported but Claude remains the more accurate option for that. See the full comparison article for setup details and what to watch for.
23 April 2026
- Added
get_training_summaryto aggregate training stats over any date range. Returns total volume, TSS, and calories by sport, power/HR/pace zone distribution with time and percentages, and a week-by-week breakdown. Useful for block reviews, load tracking, and answering questions like “how much Z2 did I do this month”. - Weather conditions are now included in get_activity_detail when available. Temperature, feels-like, min/max temp, wind speed, wind gusts, wind direction, and headwind/tailwind percentage.
- One-click calendar subscription added to the dashboard. Once connected to Intervals.icu, your training calendar appears automatically with buttons to add it directly to Apple Calendar, Google Calendar, or Outlook. No copy-pasting required.
- Workouts pushed to your calendar via IcuSync are now automatically tagged with "icusync" in Intervals.icu. Custom tags can also be added by asking Claude (e.g. "tag this as marathon block"). To skip tagging entirely, just ask Claude not to add tags.
20 April 2026
- Added
get_extended_metricsto retrieve advanced sensor data aggregated per interval. For cyclists: core body temperature, DFA alpha1 aerobic threshold marker, W’ prime balance (energy reserve), and blood glucose. For runners: ground contact time, vertical oscillation, GCT balance, and vertical ratio. Data availability depends on the athlete’s device and sensor setup.
17 April 2026
- Intervals.icu connection now uses OAuth. New users connect with one click via the Connect with Intervals.icu button in their dashboard. No API key or Athlete ID entry required. Existing users connected via API key continue to work without any changes. If an existing user disconnects, they reconnect through OAuth. Garmin attribution added to activity data returned to Claude, in line with Garmin brand guidelines.
16 April 2026
- Added Strava activity detection. Claude now automatically identifies activities sourced via Strava and explains why detailed data may be unavailable, with guidance on how to fix it.
15 April 2026
- Added coach access, allowing athletes to invite their coach by email from the dashboard. Coaches receive a personal MCP URL and can access their athletes' training data through Claude with no IcuSync account required. Athletes control which tools to grant and can revoke access at any time. One MCP URL covers all athletes who invite the same coach email.
12 April 2026
- Added
get_power_curvesto analyse your best power output across key durations for run and ride, including CP and FTP model estimates.
11 April 2026
- Added
get_best_effortsto retrieve your personal bests directly from Intervals.icu across key distances and durations.
8 April 2026
- Added
get_wellnessto retrieve daily wellness data including sleep, HRV, resting HR, and weight.
March 2026
- Launched IcuSync with 8 tools covering training history, activity detail, fitness metrics, athlete profile, calendar events, and workout push, edit and delete.
Have feedback or questions? Join the discussion on the Intervals.icu forum.