For Coaches Training & analysis

Dynamic plans: shared subscription calendars

A boundless, date-keyed plan athletes subscribe to — what it is, how it differs from a static plan, and how to build one.

Static plan vs dynamic plan

Grepiac has two kinds of multi-week plan, and they behave differently on purpose:

How a dynamic plan works

Each entry sits on a real date. When you add one, it spawns a real ScheduledWorkout for every active subscriber (so pairing, Load, week totals and compliance all work normally). The sync rules:

Building one

Open the editor at /coach/dynamic-plan/<id>/ — an 8-week, date-keyed grid with prev/next paging, a template/ad-hoc picker, and the subscriber manager. Create a plan, place workouts on dates, then add subscribers.

Feeding it from the macrocycle planner

You do not have to place every session by hand. From the ATP Builder, Push to dynamic plan lays a generated season's dated sessions straight onto a dynamic plan. Because entries are keyed by absolute date, you can run the planner for several seasons and push each onto the same plan — they accumulate into a multi-year library that every subscriber receives. Leave replace overlapping dates on so re-running one season replaces just that season. See Macrocycle plans: the basics.

When an athlete edits a dynamic session

If an athlete changes a workout that came from a dynamic plan, that copy detaches — it becomes their own static copy and stops tracking the plan, so later plan edits no longer overwrite it. The plan keeps the original for everyone else.

Hiding a plan or weeks from athletes

You can stage a plan privately and reveal it when ready. In the plan editor:

While hidden, the sessions still sit on each subscriber's calendar and you (the coach) always see them, dimmed; the athlete does not. Flip the toggle back and they appear for everyone. Existing plans stay visible, so nothing changes for current subscribers until you choose to hide something.

Last updated Jul 26, 2026

Still stuck? Ask us a question and we'll write up an answer.

Ask a question