Weekly
Get your weekly training totals by sport
Each Sunday night an email lists distance, moving time and elevation for the week, split by run, ride and other sports.
- Runs
- Weekly
- Apps
- Strava
- AI
- Not needed
- Access
- activity:read_all
Send this to your assistant
Create a ClickRuntime automation: every Sunday at 8pm, email me this week's Strava totals for distance, moving time and elevation, grouped by sport.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Strava shows a weekly graph, but it mixes sports, hides elevation behind a tap and only exists inside the app. An athlete who runs, rides and swims has to open three views to answer a simple question: did I train more or less than last week? Without that answer, build weeks become guesswork and recovery weeks get skipped. It is a small gap, but it affects every training decision after it.
On Sunday, ClickRuntime lists the week's Strava activities, sums distance, moving time and elevation gain for each sport and emails you one tidy table. It runs after your long session, so the totals include everything from Monday to Sunday.
It fits anyone following a structured plan, and coaches who ask athletes to send a weekly volume report. Weekly rhythm also makes it easy to compare block against block.
What you get out of it
Weekly volume is clear at a glance
Total distance, hours and climbing per sport sit in one place. You see immediately whether the week matched the plan or ran short. No tapping through tabs, no mental arithmetic, and no mixing of sports in a single total.
Overreach gets caught before injury
A jump in hours or elevation from one week to the next is a classic warning sign. Seeing the numbers side by side makes it easier to back off when a build gets too steep.
Coaches get reports without nagging
An athlete can forward the Sunday email to a coach instead of typing figures into a message. Both sides save time and the numbers are not rounded by memory. Neither of you has to chase or retype anything, and the figures match Strava exactly.
Season totals become simple to track
Because the summaries land in your inbox weekly, adding them up gives yearly volume, which is useful for setting goals and for comparing one training year to the next. A full year of weekly emails also makes an honest reference when a goal feels out of reach.
Sunday evening becomes a planning moment
With the numbers in hand you can decide on Monday's session knowing where your fatigue sits, rather than going on feel alone. The decision becomes calm and informed instead of reactive.
How it works
What happens, step by step
Every Sunday night, ClickRuntime pulls all of your Strava activities since Monday.
It adds up distance, moving time and elevation gain for each sport, such as runs and rides.
You get one email with a line per sport, for example "Run: 42.3 km · 3h51 · 380 m up".
Before it runs live
- Connect Strava
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Strava steps into one automation
Under the hood
The code that runs this automation
from collections import defaultdict
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, credentials, http, notify
@on_trigger
def run(event):
token = credentials.connection("strava", "personal")
now = datetime.now(timezone.utc)
week_start = (now - timedelta(days=now.weekday())).replace(hour=0, minute=0, second=0)
acts = http.get("https://www.strava.com/api/v3/athlete/activities",
headers={"Authorization": f"Bearer {token}"},
params={"after": int(week_start.timestamp()), "per_page": 100}).json()
totals = defaultdict(lambda: [0.0, 0, 0.0])
for a in acts:
t = totals[a["sport_type"]]
t[0] += a["distance"] / 1000; t[1] += a["moving_time"]; t[2] += a["total_elevation_gain"]
lines = [f"{sport}: {km:.1f} km · {secs // 3600}h{secs % 3600 // 60:02d} · {elev:.0f} m up"
for sport, (km, secs, elev) in totals.items()]
notify.email_me("Your training week", "\n".join(lines) or "No activities this week.")
return {"activities": len(acts)}FAQ
Common questions
Which sports does the summary cover?
What time does the Sunday email arrive, and which days does it count?
Does it use moving time or elapsed time?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Hear when you set a PR or pass a monthly goal
An email arrives when an activity includes a personal record or your monthly distance passes your target.
See how it worksGet short coaching notes after each workout
After every upload you receive a three-line review of pace, heart rate and effort.
See how it worksKnow the moment your website goes down
Your team hears in Slack when the site stops responding or slows down, and again when it's back.
See how it worksKeep exploring
Set up “Get your weekly training totals by sport” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.