A running log and training tracker built on org-mode. All workout data lives in a single org file as structured entries with properties drawers. A companion plan file lets you compare planned training against actual execution.
- Emacs 28.1+
- Org-mode 9.5+
Add the org-run directory to your load-path and call the setup function:
(add-to-list 'load-path "/path/to/org-run")
(require 'org-run)
(org-run-setup)| Variable | Default | Description |
|---|---|---|
org-run-log-file | ~/org/running-log.org | Path to the workout log file |
org-run-plan-file | ~/org/running-plan.org | Path to the training plan file |
org-run-default-units | miles | Distance units (miles or km) |
org-run-elevation-units | feet | Elevation units (feet or meters) |
org-run-week-start-day | monday | First day of the training week |
Runs are stored as level-3 org headings with a properties drawer:
*** Run [2025-06-15 Sun]
:PROPERTIES:
:DATE: 2025-06-15
:MILES: 5.2
:DURATION: 42:30
:INTENSITY: easy
:ELEVATION: 350
:NOTES: felt good, warm morning
:END:
Entries are organized under year (level 1) and ISO week (level 2) headings, created automatically on capture.
Valid intensity types: recovery, easy, tempo, vo2, long.
After calling org-run-setup, all commands are available under the C-c r prefix:
| Key | Command | Description |
|---|---|---|
C-c r r | org-run-capture-run | Log a new run interactively |
C-c r P | org-run-plan-week | Plan a week of training |
C-c r w | org-run-weekly-summary | Weekly summary table |
C-c r m | org-run-monthly-summary | Monthly summary table |
C-c r i | org-run-intensity-distribution | Intensity distribution breakdown |
C-c r p | org-run-compare-plan | Compare planned vs. actual training |
C-c r e | org-run-elevation-report | Elevation statistics and weekly breakdown |
C-c r x | org-run-export-table | Export entries as a raw Org table |
org-run-capture-run prompts for date, distance, duration, intensity, elevation, and notes, then inserts the entry under the correct year/week heading. It also registers an org-capture template for use with org-capture.
org-run-plan-week opens a 7-day template buffer. Fill in miles, duration, and intensity for each planned run day, then confirm with C-c C-c (or cancel with C-c C-k). Plans are written to the plan file.
All reports accept optional :start and :end keyword arguments (ISO date strings) for filtering. Output is displayed in the *org-run-report* buffer as formatted Org tables.
GPL-3.0-or-later