Can I upload custom workouts to my Garmin without using the workout creator built into Garmin Connect?

Hi,

I like creating my own custom workouts.  I usually go onto the Training and Planning Menu on Garmin Connect; Workouts and then on my workouts I click on Create a workout.  I later add these workouts to my calendar and sync them to my watch so that they are available there when I am ready to do the workout.

My question is:  Can I create my workouts as FIT files and upload them to my Garmin connect so that I don't have to manually create a new workout all the time?

Thanks,

Top Replies

All Replies

  • Just to clarify:

    1) do you want to somehow create the workout FIT files in a different way (not using the workout creator in Connect), and sync them to your Garmin without Connect?

    or

    2) do you want to still create workouts in Connect, but only sync them to your device once (so they're always available) instead of constantly adding them to the calendar whenever you want to do them?

    My understanding was 2).

    If that's the case, instead of adding a workout to your calendar, click Send to Device on the workout page in the Connect website. (In the Connect app, click the icon which looks like an arrow pointing at a phone, which opens the Send to Device page.)

    That way, the workout will always be available on the device.

  • Hi,  

    It is 1).  I would like to not use the workout creator in Connect.  I would much rather use a text editor to write the code for my workouts, save them as FIT files, and then upload those FIT files to my Garmin Connect .

     

  • I would much rather use a text editor to write the code for my workouts, save them as FIT files, and then upload those FIT files to my Garmin Connect .

    In that case, have a look here: Cookbook - Encoding FIT Workout Files | FIT SDK | Garmin Developers 

  • Ah - shouldn’t have second-guessed myself haha.

    In that case one problem is that the Connect website doesn’t support importing workout FIT files. While you can conceivably generate workout FIT files yourself (or with an existing tool), you can’t upload those files to Connect, but you have to copy them directly to the device (to the Garmin\Newfiles folder).

    There does seem to be a Garmin workout API which can import and export workouts from Connect, but it uses its own JSON format, not FIT.

    One alternative is a Chrome extension for the Connect site for sharing workouts: it exports a workout as JSON (in a format that basically mirrors the Garmin workout API response) and imports workouts in the same format. You could create a workout in Connect, export it with this extension, edit the JSON by hand, and re-import it back to your account using the same extension.

    You could also use one of a handful of github projects which allow workout creation via excel or yaml. One of them will create JSON that works with the chrome extension, while the other will apparently sync the workout directly to Connect using the workout API. I haven’t tried any of them myself.

    Excel/yaml input, supports syncing workouts to Connect via apihttps://github.com/mkuthan/garmin-workouts

    Excel input, JSON (Chrome Extension) outputhttps://github.com/sydspost/Garmin-Connect-Workout-and-Schedule-creator

    Excel input, FIT output: https://github.com/jpickup/GarminTools/

    Conceivably it would be possible to write a browser extension that could decode a workout FIT file and “import” it via the Connect workout editor page, but I don’t think anything like that exists rn. It should also be possible to create a script that does same thing, but sync via the workouts API.

  • Right, I am still looking for that missing bit of information how Garmin Coach can "omit" one of steps in workout.

    See this one scheduled for me next Monday

    Have you noticed that total time at the top of the screen says 1h3m while adding up all segments: 10+2*(19+5)+10 gives 1h8m?

    The difference is that always Garmin Coach (formerly DSW) omits last Rest period which is not possible to miss when you create your own Custom Workout. Actually not only last Rest period, but any last in Repeat loop. If I have VO2 Max workouts then on the watch it looks like this:

      

    I am still trying to find out how this is programmed in FIT file. Any clues?

  • I am still trying to find out how this is programmed in FIT file. Any clues?

    Have a look at the cookbook I mentioned in my last post, the format of workouts is well explained there. You can also take an existing FIT file of the DSW workout, convert it to CSV, and you'll see how it is done.

    Otherwise, you can avoid the last Rest in the Repeat by excluding the last round explicitly from the repeats. It will be done much easier, and quicker than messing with the FIT files. For example:

    1. Warm up
    2. 3 x repeat 19 min run + 5 min rest
    3. 19 min run
    4. Cool down
  • The difference is that always Garmin Coach (formerly DSW) omits last Rest period

    This is actually a feature I wanted for a long time.

    I am still trying to find out how this is programmed in FIT file. Any clues?

    I couldn't find anything about this in the FIT workout cookbook, the linked page about the workout FIT file format, or the corresponding C# project in the SDK, but it looks like this is now possible in the Connect workout builder:

    Ofc the JSON returned by the workout API has a corresponding field in the "RepeatGroupDTO" object: "skipLastRestStep". It's true when the checkbox is checked, null otherwise.

    I haven't had a chance to look at the difference between the corresponding FIT files, but as trux said, maybe it will give you a clue how it works.

  • Nice. I will check that soon.

  • Also, I think you need a newer device for this feature to work. If I check the "skip last recover" box and click "send to device", my older (pre-FR955) devices are marked as "partially compatible".

  • Yes I can imagine number of ways to get the same result, but seems that option mentioned by FlowState is what I was looking for.

    About DSW / GC workouts I was not sure which file is the right one.