100% Free β€’ Zero Server Cost β€’ Scheduled Daily via GitHub Actions

Turn Your Garmin Watch Data Into Your Personal Marathon AI Coach

Every morning, automatically sync your Garmin Connect metrics and 3-month race countdown, fetch on-the-spot historical temperature & humidity from Open-Meteo, and generate VDOT Target Paces, ACWR Workload Ratios, and Daily Adaptive Workout Menus via Google Gemini, delivered seamlessly to Telegram.

$0 Cost
Zero Serverless Hosting
5 Paces
Jack Daniels' VDOT Formula
28-Day
ACWR Acute:Chronic Ratio
3 HD Charts
Full-Resolution Telemetry
TELEGRAM SMART NOTIFIER

Delivered at 04:00 AM: Two-Part Reports & HD Telemetry Charts

Featuring a dual-track split: Part 1 presents telemetry metrics and lap splits; Part 2 is dedicated to Gemini AI coaching diagnosis and daily adaptive workout menus; accompanied by 3 independent high-definition sports science charts.

πŸ€–
AI Coach Bot
bot β€’ online
04:00 AM
πŸ“Š [Runner Training Telemetry Report - gemini-2.5-flash] Message 1/2
πŸ‘€ Runner Profile: PB 3:45 | Born 1985 (Age 40)
🎯 [VDOT 42.8 Target Paces] E 5:32~6:08 | M 5:12 | T 4:50 | I 4:26 | R 4:06
πŸ† [Upcoming Races (Next 90 Days Countdown)]
🚩 2026-10-25 (32 Days to go (~4 Weeks)) EVA Air Marathon | Half Marathon (21.1 km)
🩺 [Autonomic Recovery & Readiness]: HRV 58ms (Balanced) | RHR 48 bpm | Body Battery 86
πŸ“ˆ [ACWR Workload Ratio]: 1.14 (Sweet Spot - Optimal Adaptation Zone)
πŸƒ [Latest Activity]: 2026-09-23 Evening Aerobic Endurance Run
β€’ Distance: 10.02 km | Total Time: 58:32 | Avg Pace: 5:50 /km
β€’ Avg HR: 134 bpm (Zone 2: 86%) | Running Power: 242 W
β€’ Cadence: 178 spm | Stride: 0.96 m | Vert Osc: 7.8 cm | GCT: 228 ms
β€’ 🌀️ Weather: 24.2Β°C | Humidity 72% | Feels Like 25.5Β°C
[Lap Splits (Pace | HR | Elev | Cadence | Time)]
  - L01: 6:02 | 126bpm | 0m | 174spm | 6:02
  - L02: 5:54 | 131bpm | 1m | 176spm | 5:54
  - L03: 5:50 | 133bpm | 0m | 178spm | 5:50
  ... (10 laps structured breakdown)
πŸ“² Pushes 3 Full-Resolution Telemetry Charts:
Pace and HR Trend Chart
⚑ Pace/HR Dual-Axis
ACWR Acute vs Chronic Workload Ratio
πŸ“ˆ ACWR Workload Gauge
Heart Rate Zones Distribution
πŸ’“ HR 5 Zones
Click on any chart to view high-resolution image
πŸ€– [Gemini AI Coach Insights] Message 2/2

1. Workout Execution Evaluation: Identified as "Zone 2 Aerobic Base Run". Time in Z2 reached 86%, cadence steady at 178 spm, even pacing throughout. Outstanding execution quality.

2. Aerobic Decoupling Diagnosis: Today's decoupling rate is 3.2% (Well-Trained zone). No significant cardiac drift observed, demonstrating a solid aerobic base with effective thermoregulation at 24Β°C.

3. Periodization Analysis: 32 days out from EVA Air Half Marathon (Specialized Prep Phase 2). Current ACWR 1.14 is in the optimal adaptation window with no signs of overtraining.

🎯 [Today's Specific Workout Menu (Weekday Flexible Execution)]
β€’ Core Workout: E-Pace Active Recovery Run 6.0 km (Target Pace 5:32 ~ 6:08 /km | HR Cap ≀ 140 bpm)
(πŸ’‘ Execute only one session today based on your daily schedule. Avoid two-a-days!)
β€’ πŸŒ… Morning Runners: 10 min dynamic warmup, deliberately slow down for the first km, refuel with protein breakfast post-run.
β€’ πŸŒ™ Evening Runners: Light carb snack at 16:30, adjust pace using RPE/HR to manage workday stress, full cooldown stretch post-run.
CORE HIGHLIGHTS

Deep Sports Science & AI Diagnostics

Far beyond basic GPS distance tracking: Built on exercise physiology models including Jack Daniels' VDOT, ACWR, and Aerobic Decoupling %.

Jack Daniels' VDOT Paces

Real-time derivation from your personal Marathon PB into E, M, T, I, and R training paces based on scientific oxygen cost equations.

ACWR Workload Ratio

7-day acute fatigue vs 28-day chronic fitness workload ratio, categorized into 4 tiers to keep your training in the optimal Sweet Spot.

Aerobic Decoupling (Decoupling %)

Joe Friel's Efficiency Factor (EF) model split into first & second halves, diagnosing cardiac drift and aerobic base solidity.

Race Countdown & Daily Menu

Auto-syncs Garmin calendar races (next 90 days, de-duplicated), periodizes training phases, and dynamically adapts between weekday and weekend time slots.

Gemini Multi-Model Failover

Dynamically scans Gemini 2.5 / 2.0 Flash models with automated millisecond failover upon peak 503 UNAVAILABLE errors. 100% push reliability.

Open-Meteo Micro-Weather

Fetches historical temperature, relative humidity, and heat index at the exact GPS coordinates and start time to factor in thermal stress.

Advanced Running Dynamics

Running Power (W), Cadence (spm), Stride Length, Vertical Oscillation, Stride Ratio, and Ground Contact Time (GCT) running economy analysis.

HRV & Recovery Degradation

Integrates overnight HRV, Resting Heart Rate, and Body Battery; gracefully skips missing data without interrupting the workflow.

3 Independent HD Charts

No crammed multi-panel images! Matplotlib outputs standalone high-res images for pace/HR trend, ACWR gauge, and HR zones donut.

INTERACTIVE SCIENCE LAB

Interactive Running Fitness Calculators

Ported directly from our project's Python sports science algorithms. Input your race time to test Jack Daniels' VDOT formula live!

Jack Daniels' VDOT Calculator

Daniels' Running Formula

Live Calc
42.195 km
Goals:
Calculated VDOT Score 42.8
E Pace (Easy / LSD)
Aerobic Base & Recovery (~65-74%)
5:32~6:08
M Pace (Marathon)
Race Cruise Pace (~80%)
5:12
T Pace (Threshold)
Lactate Clearance (~88%)
4:50
I Pace (Interval)
VO2 Max Stimulation (~98%)
4:26
R Pace (Repetition)
Neuromuscular Speed (~108%)
4:06
Telegram Single-Line Preview:
🎯 【VDOT 42.8 Target Paces】E 5:32~6:08 | M 5:12 | T 4:50 | I 4:26 | R 4:06

Aerobic Decoupling %

Joe Friel Efficiency Factor (EF) Model

Drift Lab
$$\text{Decoupling (\%)} = \frac{\text{EF}_1 - \text{EF}_2}{\text{EF}_1} \times 100\%$$
EF (Efficiency Factor) = Speed (m/min) or Power (W) ÷ Avg Heart Rate (bpm)
First Half (First 50%)
171.4 m/min ≈ 5:50/km
Second Half (Last 50%)
171.4 m/min ≈ 5:50/km
Decoupling Rate 2.94%
Elite Aerobic Base

Cardiac drift is below 3.0%, indicating an exceptionally solid aerobic foundation with minimal compensatory cardiovascular strain over time.

ARCHITECTURE & TELEMETRY

End-to-End Automated System Architecture

An event- and schedule-driven modern Python architecture, decoupling data ingestion, exercise physiology algorithms, AI prompt engineering, and instant messaging push.

AI Coach System Architecture
Click to zoom into full 16:9 HD panoramic view
Lap Pace & HR Trend Chart

Lap Pace & HR Dual-Axis Trend

Left Y-axis features inverted time-based pace, right Y-axis displays HR, with a purple vertical halfway decoupling split.

ACWR Workload Gauge Chart

ACWR Workload Ratio Gauge

Left side compares 7-day acute vs 28-day chronic load; right side features large status badge and 4-tier injury-prevention gauge.

Heart Rate Zones Donut Chart

Heart Rate 5 Zones Distribution

Sporty donut chart displays total workout duration with a clean vertical breakdown of time-in-zone and percentages.

ZERO-COST DEPLOYMENT

Only 3 Steps, Ready in 5 Minutes

No cloud server (VPS) required, no software installation! Simply fork on GitHub and run free forever.

1

Fork the Repository

Navigate to our GitHub repo and click the Fork button in the top right to copy the codebase into your personal account.

Fork This Project
2

Configure 5 Secrets

In your repo, go to Settings → Secrets and variables → Actions and input these 5 keys:

GARMIN_EMAILGarmin Account
GARMIN_PWDGarmin Password
TG_TOKENBotFather Token
TG_CHAT_IDTelegram Chat ID
GEMINI_API_KEYGoogle AI Studio
Protected by GitHub Bank-Grade Encryption
3

Enable GitHub Actions

Click the Actions tab in your repo and enable workflows. It will run automatically every morning, or you can trigger Run workflow manually anytime!

Includes Cleanup workflow to clear run history with one click!

Optional: Personalized Runner Settings (GitHub Secrets)

Customize RUNNER_NAME, RUNNER_PB (e.g. 3:45), RUNNER_BIRTH_YEAR, and ZONE2_MAX_HR for custom VDOT target zones.

View Documentation →
FREQUENTLY ASKED QUESTIONS

Frequently Asked Questions

Everything you need to know about security, costs, APIs, and schedule timing.

Is it really 100% free with no hidden fees?

Yes, 100% free! GitHub Actions provides 2,000 free CI/CD minutes per month (this script takes only 30-50 seconds daily, and is unlimited for public repos); Google Gemini API offers a generous free tier (hundreds of daily requests); Open-Meteo weather API is completely open-source without requiring an API key.

Is my Garmin account login secure?

Extremely secure. All credentials are stored inside your private GitHub Repository Secrets, encrypted via asymmetric public-key cryptography on GitHub's secure infrastructure. The code is 100% open-source Python, connecting directly from the GitHub runner to Garmin Connect with zero third-party proxies.

Will I still receive a report if I rest today?

Yes! The system features an intelligent 26-hour recency detection window. If no new workout has been logged, it automatically switches to the Rest Day & Supercompensation Report, analyzing your rolling 7-workout cumulative volume and acute workload to prescribe foam rolling, hydration recovery, and a preview of your next session.

Can I customize the daily delivery time?

Absolutely. Simply edit .github/workflows/daily_task.yml in your repository and adjust the cron expression (default is UTC 19:55, which delivers around 03:55~04:00 AM local time for early risers to review their plan for the day; note GitHub Actions cron operates in UTC).