Running training plans

Pheidi

Personalized running plans for 5K to marathon that reschedule when life happens. Built on polarized training and real sports science. Free.

What it is

Most training plans are a PDF that assumes nothing goes wrong for sixteen weeks. Pheidi assumes something will. Miss a run, tweak a calf, take a vacation, and the plan reshuffles around it.

Under the hood it's polarized training: mostly easy miles, a little hard work, not much in between. Workouts export to your calendar and your Garmin.

How it fits

Pheidi started in 2019 as an Angular toy, then sat untouched for five years. In March 2026 I restarted it with a spec and a team of agents. It's past 700 commits since then. Plans that bend when you get hurt or go on vacation, which is exactly what I needed. It's one part of the stack, where my projects run each other.

What Pheidi does for the others

What the others do for Pheidi

A look around

Live screenshots. CI takes them on every merge and Screenery serves the newest. Nobody exports a PNG by hand.

Today's run with pace, heart rate, and effort targets, plus this week's days.
Today's run, this week, and the season on one screen.
A month calendar with each training day's workout icon and distance.
The month view. Icons show the workout type at a glance.
A table of every week in the plan with its distance, long run, and phase.
The whole block, week by week.
A low readiness score next to a suggestion to take today's run easy.
Feeling rough? It suggests backing off. It never rewrites the plan behind your back.
The injury form with a body-part picker and a pain slider.
Report where it hurts and how much. The plan adjusts.
The vacation form with start and end dates and a training-load slider.
Pick your vacation dates and how much running you'll keep.
The export panel offering the next workout or the whole block as Garmin .fit files.
Send the next workout, or the whole block, to a Garmin.

Recent updates

Written by Merge & Tell from the pull requests that shipped them.

  1. Your watch doesn't care what brand it is anymore

    If you run Garmin, COROS, Suunto, Wahoo, Amazfit, or Huawei, you can now connect your Intervals.icu account once and your planned workouts show up on the watch. I'm not building six separate device integrations by hand, one connection covers all of them.

  2. Deleting a paused plan no longer requires activating it first

    If you had an old paused plan sitting in your dropdown and wanted it gone, your only path used to be switching to it, which made it your active plan, then going into settings to abandon it. So getting rid of a plan meant briefly hijacking your own training to do it.

  3. Feedback you send now goes somewhere, and comes back

    I'll be honest, for a while the answer to "what happens when I submit feedback" was "it goes into a void and I look at it eventually." You had no way to know if I'd seen it, ignored it, or fixed it three weeks ago without telling you. That's over. Open the feedback screen and you'll see every report you've sent with a…

  4. Your "today" workout is now actually today

    If you're on the West Coast, or really anywhere that isn't wherever my server happens to think it is, your plan used to flip to tomorrow's workout around 7 or 8pm your time. So you'd open the app after dinner, see Tuesday's run staring back at you on a Monday, and reasonably wonder if you'd lost a day somewhere. That's…

  5. Denying clipboard access no longer breaks the share button behind the scenes

    Some browsers ask before letting a site copy anything to your clipboard, and some people say no. That's a completely normal thing to do. It was also, until now, enough to crash the share-link feature and throw an error into my logs like something had actually gone wrong.