I’ve been using both Xert and Intervals.icu for my training and was wondering if there’s a way to sync the Xert Planner dashboard directly with Intervals.icu. I’m aware that you can export Xert intervals to Garmin Connect, which then syncs the workout to Intervals.icu. However, I’m curious if there’s any method for a more direct sync between Xert and Intervals.icu without needing Garmin Connect as the intermediary.
Any insight or workarounds would be appreciated! Thanks in advance.
I never found a way. I tried exporting out of Xert into Garmin and couldn’t even get that to work. Every type of file I made from Xert seemed to be invalid. I see I can just send it to Garmin, it ends up in my workout library, but how do you get it down into intervals.icu? I personally have bailed on Xert. Too many workouts that are just complex for no good reason.
I’'m still not clear on how the workout builder works on here. I’ve just been making them in Garmin Connect for now.
You can export Xert workouts as a .zwo file and then import it into intervals.icu directly.
Re: the workout builder, if you’re referring to the workout builder on intervals.icu, it’s one of my favorite workout builders out there. It’s one of the easiest to use in my personal opinion.
Realise its an old thread, but I’ve been trialling Xert for the past couple of weeks and was looking to get it linked up to Intervals. Doesn’t appear to be direct link, but I’ve bodged together a script using Xerts open api (https://www.xertonline.com/API.html) to update my FTP, W’ (using the HIE value) and fatigued from Xert and upload the WOTD to Intervals.
Given the API appears open, I’m not sure if this is something @david can build in natively?
Yes it its working fine. I originally wrote the script below in R (sorry - data scientist so I just stick with what I know) - so might be best converted to better language. It only updates FTP and W’. I then went onto build something in Power Automate (which I have access to) which also updates the Fatigue value and imports the WOTD, but I’ve not implemented that in the R script yet.
library(pacman)
p_load(dplyr, httr, jsonlite, tidyr)
### Get Xert Signiture
xert_auth <- POST("https://www.xertonline.com/oauth/token",
authenticate("xert_public", "xert_public"),
body = list(grant_type = "password",
username = "YOUR_USERNAME",
password = "YOUR_PASSWORD"),
encode = "form")
# Extract the content of the response
content <- content(xert_auth, "parsed")
xert_data <- GET("https://www.xertonline.com/oauth/training_info?format=erg", add_headers(Authorization = paste("Bearer", content$access_token)))
# Extract the content of the response
xert_data <- content(xert_data, "text")
#Parse Output
xert_data <- jsonlite::fromJSON(xert_data)
### Update Intervals.icu
# Define the URL and your API key
url <- "https://intervals.icu/api/v1/athlete/{your_id}/sport-settings/Ride/"
api_key <- "YOUR_API_KEY"
# Make the PUT
response <- PUT(url,
authenticate("API_KEY", api_key, type = "basic"),
add_headers(`Content-Type` = "application/json"),
body = list(ftp = round(xert_data$signature$ftp,0),
indoor_ftp = round(xert_data$signature$ftp,0),
w_prime = round(xert_data$signature$hie*1000,0)
),
encode = "json")
# Check the response
if (status_code(response) == 200) {
print("Intervals Updated")
} else {
print("Error Updating Intervals")
}