Weather-aware morning training brief on your calendar
Every weekday at 6am, get a recommended workout based on your recent training and today's weather, automatically blocked on your calendar.
Build me an agent workflow that runs every weekday at 6am in my local time zone and produces a weather-aware morning training brief, then books the recommended session on my Google Calendar.
Inputs I will configure on the workflow: my home latitude and longitude, my local time zone (e.g. America/New_York), my preferred training windows for the day (default: morning 6am-9am, midday 11am-2pm, evening 5pm-8pm), my Google Calendar ID (default: primary), and an optional notes field describing my current training block (e.g. 'base season', 'taper week').
Each run the agent should:
1. Call Strava's List Athlete Activities operation for the last 7 days (after = now - 7 days) and Get Athlete Stats for the authenticated athlete. Use these to estimate current training load: total time and distance over the last 7 days, count of high-intensity vs easy sessions, days since last rest day, and a rough trend vs my recent totals.
2. Call Weather's Get Weather Forecast operation with my configured latitude and longitude. Inspect today's data points across the three configured windows (morning, midday, evening) for temperature, precipitation probability, precipitation volume, and wind speed. Convert to imperial or metric to match my preference.
3. Synthesize a short brief that decides:
- Sport type (run, ride, swim, strength, cross-train) based on what sports appear in my recent Strava activities and how loaded each one is.
- Intensity (easy, steady, intervals, long, rest) based on accumulated load: high recent load = easy or rest; low load + good weather = key session; very high load or multiple hard days in a row = mandatory rest.
- Window (morning / midday / evening) based on which window has the best conditions: prefer dry, moderate temps, low wind. If every window is poor (heavy rain, dangerous heat or cold, high wind), recommend an indoor swap (treadmill, trainer, pool, strength).
4. Call Google Calendar's Create Event operation on my configured calendar with:
- Summary: a one-line title like 'Easy run, 45 min (morning, 58F clear)'. If it's a rest day, prefix the title with 'Rest day:' and a one-line reason (e.g. 'Rest day: 6 days of training in a row').
- Start and end times matching the chosen window (default 60 minutes; longer for 'long' intensity, shorter for 'easy'). Use RFC3339 with my time zone.
- Description: the full brief, including last-7-day totals, why this sport/intensity was chosen, the forecast for the chosen window, and a 3-5 bullet session structure (warmup, main set, cooldown).
5. Output is one calendar event per weekday. If load and weather together suggest a true rest day, still create a calendar event so the decision is visible, but title it as a rest day and skip the session structure. Never create more than one event per day.
Constraints: do not modify or delete existing events. Do not overwrite events that already exist in the chosen window; if the window is fully booked, fall back to the next-best window and note the change in the description. Keep the brief tight and skimmable, not a wall of text.
Additional information
What does this prompt do?
- Looks at your Strava activities from the last 7 days and your running totals to gauge how hard you've been training.
- Checks today's hourly forecast for your home location across morning, midday, and evening windows.
- Picks the best outdoor window and recommends a sport and intensity that fits your current load, from easy run to intervals to long ride to rest day.
- Books a Google Calendar event for the chosen window with the session plan in the description, or schedules a clearly labeled rest day if recovery or weather says so.
What do I need to use this?
- A Strava account connected so we can read your recent activities and totals.
- A Google Calendar login so we can create the event on your primary calendar.
- Your home coordinates and preferred time zone so the forecast and event times line up with where you actually train.
How can I customize it?
- Change the schedule to run earlier, later, or on weekends if your training week looks different.
- Adjust the windows we consider (for example, only mornings if you never train after work) or the sports we rotate between.
- Tune how aggressive the load logic is, so the brief leans more conservative during a build block or more ambitious during base season.
Frequently asked questions
Does this actually look at how tired I am?
What happens on a bad weather day?
Will it overwrite an existing calendar event?
Can I use a different calendar instead of my primary one?
Does it work for cyclists and swimmers too, not just runners?
Stop second-guessing today's workout.
Connect Strava, Weather, and Google Calendar once, and Geni books a smart session for you every morning before 6am.