The daily flow
Open Workouts → you see the day's planned session
(purpose + blocks) and, right under it, the log for it.
Fill the log — start/end time (duration is derived), Completed %, RPE,
ankle pain, leg confidence, notes. The workout description is
pre-filled from the program; edit it if the session changed.
Then hit one:
- ✅ Mark complete — saves the log to the database and writes a timed Google Calendar event.
- 🚫 Missed — marks the planned workout as not done. Recorded in the system, never on the calendar — so the plan can be adjusted.
After saving, the tile becomes a summary with a badge
(✓ Logged or ⤫ Missed) plus
✏️ Edit / 🗑 Delete. Edit updates the same record (no
duplicate). Delete keeps the tile as 🗑 Log removed with a
↩ Log again button — nothing silently disappears.
Several workouts & rest days
A log is keyed by date + workout type, so a day can hold more than one. + Add another workout (any day, including rest days) adds a manual session — free-text type + description + metrics. Two workouts of the same type on one day aren't allowed; give them different names.
Where the data lives
- Database (Cloudflare D1) — the single source of truth, one row per (date, workout type), with the metrics, description, completed/missed status.
- Google Calendar "Sport & Health" — mirrors completed sessions only. Missed / removed ones are not on the calendar.
- Logging & stats reads the database for load / ACWR / trends.
How Claude uses it
Claude reads the database directly — no copy-paste. When you ask for an update / weekly review, it looks at both completed and missed sessions: missed planned workouts signal that next week's plan likely needs easing or reshuffling.
Where to go
- Log today / a past day → Workouts
- Load, ACWR, trends → Logging & stats
- The full program → Program