How I Used ChatGPT to Make a Race Calendar

Photo: James Mitchell
During the off-season it’s a great idea to unplug from triathlon and do other things. But, as the energy comes back and the lessons learned throughout the season start to turn into ideas, for me, the hope of the next race season bubbles over into planning. Making a race calendar is one of the most exciting parts of the year. Everything is full of possibility, there are new challenges, scores to settle, new things to try and adventure seems to be beckoning. So, when my coach told me it wasn’t quite time to think about next season, I thanked him for doing his job (pulling on the reins) and then (insert devious laugh), I turned to AI.
What started out as more emotional relief, just a skeleton plan so I could actually relax, turned into quite a lot of fun and, more importantly, learning. Keeping in mind that AI isn’t perfect and can kowtow to user ego, it can still crunch the numbers and handle a lot more variables with more accuracy and speed than I ever could. So I started asking ChatGPT questions. I inputted data, added conditions, tested different options and even queried different equipment. The result was intriguing and, although real life will kick in and render much of the planning moot, it was an experiment that turned into a bit more than I expected. .
The Framework
Initially, I gave ChatGPT a framework. With the preferences set to “Professional” and “less warm” and “less enthusiastic,” I asked it to make me a racing calendar adherent to a list of non-negotiables that included what kind of races, how many, a date range, specific geographical area, a minimum time gap between races and to factor in a mid-season altitude training camp. I then added my non-negotiable priority race, my terrain preferences and weaknesses, my skill strengths and deficits, pointed it to my previous race results–and so the conversation started.
Prompt:
What would be the best race schedule for triathlete [ENTER NAME]? There should be [ENTER QUANTITY AND TYPE OF RACES] distance races (independent, IRONMAN, or Challenge branded races), all races should be within [ENTER GEOGRAPHIC AREA] between the months [ENTER DATE RANGE]. There must be a minimum of [ENTER NUMBER] weeks between races. Strengths include: [ENTER STRENGTHS]. Weaknesses include: [ENTER WEAKNESSES]. Previous results can be found [ENTER WHERE TO FIND RESULTS]. The race calendar must include [ENTER RACE]. No races can be during [ENTER BLACKOUT DATES].
Different Goals, Different Outcomes
As the list of races started to compile, I then started to play with different goals, asking it to tweak selection based on increasing chances of world championship qualification, boosting world ranking, and best chance for results. I started to see patterns and noticed which races populated consistently, taking note of the reasons ChatGPT selected specific races. Sometimes I would further query its reasoning or give it additional information, including discounting a race for travel reasons or simply personal preference. I’d suggest an alternative and it would reason with me why it was a good, better or bad alternative.
I was pleased to see some of my preferred races included in many iterations for the same reasons I selected them, but with more detailed data that echoed my reasoning. The most interesting calendar, although not surprising, was one that prioritized world ranking points. Racing bigger events and placing lower would, in theory, yield higher points than racing smaller races and getting “better” results (position wise). When it came to a calendar focused on world championship qualification, I found its performance predictions a bit unrealistic in some cases, even when I asked it to factor in my performance on an average.
The back and forth continued until I had a list that looked pretty good to me. It was clear that I had definitely manipulated and influenced the AI to a list I was familiar and comfortable with, but I was aware of that and, after all, I was the one racing. Where using AI to make a race calendar was truly helpful was deciding between similar races or races close together date wise, as well as developing a fully balanced, thoughtful, and complimentary full season schedule. It was easy to pick 10 races that might suit me, but ChatGPT helped me pick the best five from that list that all worked together according to my training, travel and racing preferences. Using ChatGPT also helped clarify my goals and reminded me that the best thing about racing is the fire and heart that give it meaning and purpose; seeing a race calendar that was, according to AI, my best chance at world championship qualification, did absolutely nothing to excite me.
Prompt: Please adjust the calendar to prioritize [ENTER GOAL].

Photo: James Mitchell
Adding in Life
The next step was factoring in “the other stuff.” I asked it to include two training camps, one being at altitude, with suggested dates to arrive, acclimate and come down before any races. To my surprise, after multiple altitude camp prompts, it suggested adding an additional altitude block later in the season which I fully embraced.
Prompt: Please adjust the calendar to exclude [ENTER EXCLUSION].
Equipment and Skill
Once I had a calendar, I then started to hone in on my priority race. Since it was a race I had done a few times before where the bike is the primary race decider, I uploaded my power files and asked ChatGPT to compare my performances to one another and, pointing it to Strava and the race results, to the performances of other athletes achieving my goal time. I was provided with an estimate of how much more power I would need to push, and also where on the course I was losing the most time. From there, we then debated different equipment choices, including wheels and different skills I could work on for a faster bike split.
It may seem too detailed at this point to consider these factors, but I then asked the AI to factor this into the race selection. For example, since descending was a skill deficit, an early season race with technical descents would be of benefit. Equipment was also a limiter, and knowing that at this stage granted time to research, procure, fit and adapt to anything new.
Prompt: The priority race is [ENTER RACE], can you compare my race times to other athletes in the field, specifically the ones biking [ENTER BIKE TARGET TIME]. Can you compare my bike times to one another, considering that in the first year I used [ENTER EQUIPMENT] and subsequent years I used [ENTER EQUIPMENT], factoring in historical weather data. Where am I losing the most time? What changes would you suggest to make [ENTER TIME GOAL]. And how would all this information influence the race calendar?
No Muss, No Fuss Changes
Finally, I had an exciting race calendar and I was pretty pleased with myself; my coach, silently reiterating his initial statement, ignored my absolute masterpiece. Nevertheless, I felt like I had a North arrow and could finally relax into my off-season—but then something changed. Noticing a race had announced a date and it was months away from the previous year, I told ChatGPT. In seconds I had an updated plan. Since no race season in the history of humankind has ever gone to plan, I knew then that AI had just become a very handy and comforting asset I would continue to use throughout the season.
Prompt: Can you update the calendar to adjust to [ENTER CHANGE].
Start the discussion at forum.slowtwitch.com