This tool allows you to quickly build your weightlifting programs, ensure you have proper weekly volume per muscle group , and balance it with the time you spend in a gym . You can build multi-week programs, plan your mesocycles, deload weeks, testing 1RM weeks, and see the weekly undulation of volume and intensity of each exercise on a graph.
Set the program name, create weeks and days, type the list of exercises for each day, putting each exercise on a new line, along with the number of sets and reps after slash (
/ ) character, like this:
Squat 3x3-5
Romanian Deadlift 3x8
Autocomplete will help you with the exercise names. You can also create custom exercises if they're missing in the library.
On the right you'll see Weekly Stats , where you can see the number of sets per week per muscle group, whether you're in the recommended range (indicated by color), strength/hypertrophy split, and if you hover a mouse over the numbers - you'll see what exercises contribute to that number, and how much.
The exercise syntax supports RPEs , percentage of 1RM , rest timers, various progressive overload types, etc. Read more about the features in the docs !
When you're done, you can convert this program to Liftosaur program, and run what you planned in the gym, using the Liftosaur app !
To use this program:
Install Liftosaur app Copy the link to this program by clicking on below Import the link in the app, on the Choose Program screen. Add New Week Duplicate Week Add Week Description
Add Day Description
Delete Day
Add Day Description
Delete Day
Add Day Description
Delete Day
Add Day Description
Delete Day
Add Day
Week Stats Total Sets: 48
Strength Sets: 16, 33%
Hypertrophy Sets: 32, 67%
Upper Sets: 27 (8s , 19h ), 4d Lower Sets: 19 (8s , 11h ), 4d Push Sets: 21 (8s , 13h ), 4d Pull Sets: 14 (4s , 10h ), 4d Legs Sets: 11 (4s , 7h ), 4d Shoulders: 17↓ (6s , 11h ), 4d Glutes: 19↓ (8s , 11h ), 4d Hamstrings: 14↓ (6s , 8h ), 4d Quadriceps: 15↓ (6s , 9h ), 4d Forearms: 8↑ (2s , 6h ), 4d {"maxWidth":2400,"url":"/planner"}
{"exportedProgram":{"customExercises":{},"program":{"deletedExercises":[],"planner":{"name":"P-Zero Full Body - Superset T3's","vtype":"planner","weeks":[{"name":"week1","days":[{"name":"day1","exerciseText":"// T1 - Squat\n// Set 1RM before first session. Adjust warmup sets as needed.\nSquat_T1: Squat / 3x4, 1x4+ / 3x3, 1x3+ / 3x2, 1x2+ / 180lb 180s / warmup: 1x10 45lb, 1x5 95lb, 1x3 135lb, 1x3 155lb / progress: custom(stage1weight: 0lb, increase: 5lb) {~\n if (completedReps[4] >= reps[4] + 1) {\n weights = completedWeights[4] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[4]\n setVariationIndex = 2\n weights = completedWeights[4] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[4] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// T2 - Overhead Press\n// Set 1RM before first session. Adjust warmup sets as needed.\nOverheadPress_T2: Overhead Press / 4x12 / 4x10 / 4x8 / 57.5lb 120s / warmup: 1x10 45lb / progress: custom(stage1weight: 0lb, increase: 2.5lb) {~\n if (completedReps >= reps) {\n weights = completedWeights[1] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[1]\n setVariationIndex = 2\n weights = completedWeights[1] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[1] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// **T3a**. Superset with T3b You need to get total reps indicated by max reps in range in\n// as few sets as possible. Complete a set with some reps, then add another\n// set and complete again. If you do all required reps in <= 4 sets, weight goes up.\n// If more than 4 sets - it goes to the next stage (dropping the goal reps) or\n// consider suppressing the stage progress and just stay with the same weight next week\n// and try to get the reps done in 4 sets.\nCableLateralRaise_T3B: Lateral Raise, Cable / 1x1-60+ / 50% 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 0lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3b**. Superset with T3a\nTricpePushDown_T3C: Triceps Pushdown / 1x1-60+ / 45lb 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 20lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3c**. Superset with T3d\nDBKrocRow_T3A: Bent Over One Arm Row / 1x1-60+ / 20lb 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 15lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3d**. Superset with T3c\nHangingLegRaise_T3D: Hanging Leg Raise / 1x1-60+ / 50% 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 0lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}"},{"name":"day2","exerciseText":"// T1 - Deadlift\n// Set 1RM before first session. Adjust warmup sets as needed.\nDeadlift_T1: Deadlift / 3x4, 1x4+ / 3x3, 1x3+ / 3x2, 1x2+ / 195lb 180s / warmup: 1x5 135lb, 1x3 135lb, 1x3 155lb, 1x1 175lb / progress: custom(stage1weight: 0lb, increase: 5lb) {~\n if (completedReps[4] >= reps[4] + 1) {\n weights = completedWeights[4] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[4]\n setVariationIndex = 2\n weights = completedWeights[4] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[4] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// T2 - Bench Press\n// Set 1RM before first session. Adjust warmup sets as needed.\nBenchPress_T2: Bench Press / 4x12 / 4x10 / 4x8 / 105lb 120s / warmup: 1x10 45lb, 1x3 95lb / progress: custom(stage1weight: 0lb, increase: 5lb) {~\n if (completedReps >= reps) {\n weights = completedWeights[1] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[1]\n setVariationIndex = 2\n weights = completedWeights[1] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[1] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// **T3a**. Superset with T3b. You need to get total reps indicated by max reps in range in\n// as few sets as possible. Complete a set with some reps, then add another\n// set and complete again. If you do all required reps in <= 4 sets, weight goes up.\n// If more than 4 sets - it goes to the next stage (dropping the goal reps) or\n// consider suppressing the stage progress and just stay with the same weight next week\n// and try to get the reps done in 4 sets.\nDBShrug_T3A: Shrug / 1x1-60+ / 50% 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 0lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3b**. Superset with T3a\nDBInclineBenchPress_T3B: Incline Bench Press, Dumbbell / 1x1-60+ / 50% 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 0lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3c**. Superset with T3d\nDBHammerCurl_T3C: Hammer Curl / 1x1-60+ / 50% 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 0lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3d**. Superset with T3c\nSeatedLegCurl_T3D: Lying Leg Curl / 1x1-60+ / 50% 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 0lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}"},{"name":"day3","exerciseText":"// T1 - Overhead Press\n// Set 1RM before first session. Adjust warmup sets as needed.\nOHP_T1: Overhead Press / 3x4, 1x4+ / 3x3, 1x3+ / 3x2, 1x2+ / 82.5lb 180s / warmup: 1x10 45lb, 1x5 65lb, 1x3 75lb / progress: custom(stage1weight: 0lb, increase: 2.5lb) {~\n if (completedReps[4] >= reps[4] + 1) {\n weights = completedWeights[4] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[4]\n setVariationIndex = 2\n weights = completedWeights[4] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[4] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// T2 - Squat\n// Set 1RM before first session. Adjust warmup sets as needed.\nSquat_T2: Squat / 4x12 / 4x10 / 4x8 / 120lb 120s / warmup: 1x10 45lb, 2x3 95lb / progress: custom(stage1weight: 0lb, increase: 5lb) {~\n if (completedReps >= reps) {\n weights = completedWeights[1] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[1]\n setVariationIndex = 2\n weights = completedWeights[1] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[1] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// **T3a**. Superset with T3b. You need to get total reps indicated by max reps in range in\n// as few sets as possible. Complete a set with some reps, then add another\n// set and complete again. If you do all required reps in <= 4 sets, weight goes up.\n// If more than 4 sets - it goes to the next stage (dropping the goal reps) or\n// consider suppressing the stage progress and just stay with the same weight next week\n// and try to get the reps done in 4 sets.\nChestFlyMachine_T3A: Chest Fly, Leverage Machine / 1x1-60+ / 15lb 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 10lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3b**. Superset with T3a\nLatPullDown_T3B: Lat Pulldown / 1x1-60+ / 40lb 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 35lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3c**. Superset with T3d\nLegExtension_T3C: Leg Extension / 1x1-60+ / 50% 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 0lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3d**. Superset with T3c\nHangingLegRaise_T3D: Hanging Leg Raise / 1x1-60+ / 50% 90s"},{"name":"day4","exerciseText":"// T1 - Bench Press\n// Set 1RM before first session. Adjust warmup sets as needed.\nBench_T1: Bench Press / 3x4, 1x4+ / 3x3, 1x3+ / 3x2, 1x2+ / 155lb 180s / warmup: 1x10 45lb, 1x5 95lb, 1x3 115lb, 1x1 135lb / progress: custom(stage1weight: 140lb, increase: 5lb) {~\n if (completedReps[4] >= reps[4] + 1) {\n weights = completedWeights[4] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[4]\n setVariationIndex = 2\n weights = completedWeights[4] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[4] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// T2 - Deadlift\n// Set 1RM before first session. Adjust warmup sets as needed.\nDeadlift_T2: Deadlift / 4x12 / 4x10 / 4x8 / 130lb 120s / warmup: 2x3 125lb / progress: custom(stage1weight: 0lb, increase: 5lb) {~\n if (completedReps >= reps) {\n weights = completedWeights[1] + state.increase\n } else {\n if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[1]\n setVariationIndex = 2\n weights = completedWeights[1] + state.increase\n } else if (setVariationIndex == 2) {\n setVariationIndex = 3\n weights = completedWeights[1] + state.increase\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.increase\n }\n }\n~}\n\n// **T3a**. Superset with T3b. You need to get total reps indicated by max reps in range in\n// as few sets as possible. Complete a set with some reps, then add another\n// set and complete again. If you do all required reps in <= 4 sets, weight goes up.\n// If more than 4 sets - it goes to the next stage (dropping the goal reps) or\n// consider suppressing the stage progress and just stay with the same weight next week\n// and try to get the reps done in 4 sets.\nDBBenchPress_T3A: Bench Press, Dumbbell / 1x1-60+ / 35lb 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 30lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3b**. Superset with T3a\nSeatedRow_T3B: Seated Row, Leverage Machine / 1x1-60+ / 65lb 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 35lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3c**. Superset with T3d\nDBWalkingLunge: Lunge, Dumbbell / 1x1-60+ / 50% 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 0lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}\n\n// **T3d**. Superset with T3c\nHammerCurl_T3D: Hammer Curl / 1x1-60+ / 50% 90s / warmup: none / progress: custom(increase: 5lb, initialReps: 60, diff: 15, stage1weight: 0lb) {~\n if (reps[ns] == state.initialReps) {\n state.stage1weight = weights[ns]\n }\n if (sum(completedReps) >= reps[ns]) {\n if (completedNumberOfSets <= 4) {\n weights += state.increase\n } else {\n if (reps[ns] == state.initialReps - state.diff * 2) {\n weights = state.stage1weight + state.increase\n reps = state.initialReps\n } else {\n reps -= state.diff\n }\n }\n }\n~}"}]}]},"exercises":[],"vtype":"program","days":[],"deletedDays":[],"url":"","isMultiweek":false,"name":"P-Zero Full Body - Superset T3's","weeks":[],"nextDay":2,"shortDescription":"","clonedAt":1754158318363,"description":"","id":"fhcfjtpx","tags":[],"deletedWeeks":[],"author":""},"version":"20250815161850","settings":{"timers":{"warmup":90,"workout":180,"reminder":900},"units":"lb"}},"shouldSyncProgram":false,"isMobile":false,"revisions":[]}