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.
01:28
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/// The GZCLP logic is pretty tricky, so the code below may look intimidating.
/// If you want to figure it out how it works, watch this video:
/// https://www.youtube.com/watch?v=1sOr8pS9tl4
///
/// But if you just want to tweak the program slightly and add/change some T3s,
/// simply add them at the end of each day, reusing t3: Lat Pulldown.
/// As an example, there're some optional T3s commented out below (i.e. prefixed with ///).
/// Remove triple slashes (///) there if you want to add them to the program.
// **T1** It starts with **85% of 5RM** (or approximately **75% or 1RM**).
// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.
// There's the RM calculator there to help find it out if you don't know it
// ! **T1**
// **T1** Retest week, you may skip warmups. Find your new 5RM (5 rep max), as follows
// * Start with the bar, do 5 reps.
// * Throw on some more weight, do 5 reps.
// * Repeat, when the bar starts to get heavy, make smaller jumps.
// * When you finally get to a set that is hard, but you do it - take that number, long press **5RM Test** set, and set the weight you did
// * Tap on the "New 5RM" set to mark it completed
{"exportedProgram":{"customExercises":{"vlrvsaos":{"name":"Band Pull-Aparts","types":[],"id":"vlrvsaos","isDeleted":false,"meta":{"synergistMuscles":["Trapezius Lower Fibers"],"targetMuscles":["Deltoid Posterior"],"bodyParts":[],"sortedEquipment":[]},"vtype":"custom_exercise"},"btmxukdh":{"name":"Elbow on Knee External Shoulder Rotation","types":["pull"],"id":"btmxukdh","isDeleted":false,"meta":{"synergistMuscles":["Teres Minor","Deltoid Posterior"],"targetMuscles":["Infraspinatus"],"bodyParts":[],"sortedEquipment":[]},"largeImageUrl":"https://e3rehab.com/wp-content/uploads/2023/02/Screen-Shot-2022-07-22-at-3.05.28-PM.png","vtype":"custom_exercise"}},"program":{"id":"gzclp","name":"GZCLP ALTered","url":"","author":"","shortDescription":"","description":"","nextDay":3,"weeks":[],"isMultiweek":false,"days":[{"id":"vvvopjqt","name":"Day 1","exercises":[]}],"exercises":[],"tags":[],"deletedDays":[],"deletedWeeks":[],"deletedExercises":[],"clonedAt":1733350148056,"planner":{"name":"GZCLP ALTered","weeks":[{"name":"Week 1","days":[{"name":"Leg Day","exerciseText":"/// The GZCLP logic is pretty tricky, so the code below may look intimidating.\n/// If you want to figure it out how it works, watch this video:\n/// https://www.youtube.com/watch?v=1sOr8pS9tl4\n///\n/// But if you just want to tweak the program slightly and add/change some T3s,\n/// simply add them at the end of each day, reusing t3: Lat Pulldown.\n/// As an example, there're some optional T3s commented out below (i.e. prefixed with ///).\n/// Remove triple slashes (///) there if you want to add them to the program.\n\n\n// **T1** It starts with **85% of 5RM** (or approximately **75% or 1RM**).\n// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.\n// There's the RM calculator there to help find it out if you don't know it\n\n// ! **T1**\n\n// **T1** Retest week, you may skip warmups. Find your new 5RM (5 rep max), as follows\n// * Start with the bar, do 5 reps.\n// * Throw on some more weight, do 5 reps.\n// * Repeat, when the bar starts to get heavy, make smaller jumps.\n// * When you finally get to a set that is hard, but you do it - take that number, long press **5RM Test** set, and set the weight you did\n// * Tap on the \"New 5RM\" set to mark it completed\nt1: Squat / 4x3 64kg, 1x3+ 64kg / 5x2 64kg, 1x2+ 64kg / 9x1 64kg, 1x1+ 64kg / 1x5 64kg (5RM Test) / progress: custom(increase: 4kg) {~\n if (descriptionIndex == 1) {\n descriptionIndex = 2\n }\n if (setVariationIndex == 4) {\n descriptionIndex = 2\n setVariationIndex = 1\n weights = completedWeights[1] * 0.85\n rm1 = completedWeights[1] / rpeMultiplier(5, 10)\n } else if (completedReps >= reps) {\n weights = completedWeights[ns] + state.increase\n } else if (setVariationIndex == 3) {\n descriptionIndex = 3\n setVariationIndex += 1\n } else {\n setVariationIndex += 1\n }\n~}\n\n// **TP** For warm-up to 5 reps of Scapular Pull Ups.\ntP: Chin Up, Bodyweight / 4x3 0kg 90s, 1x3+ 0kg 90s / warmup: 1x5 0kg / progress: custom() { ...tP: Pull Up, Bodyweight }\n\n// **T2** Start with **65% of 5RM**.\n// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.\n// There's the RM calculator there to help find it out if you don't know it\n\n// ! **T2**\nt2: Incline Bench Press, Dumbbell / 3x10 18kg / 3x8 18kg / 3x6 18kg / progress: custom(stage1weight: 0kg, increase: 2kg, stage3increase: 4kg) {~\n if (descriptionIndex == 1) {\n descriptionIndex = 2\n }\n if (completedReps >= reps) {\n weights = completedWeights[ns] + state.increase\n } else if (setVariationIndex == 1) {\n state.stage1weight = completedWeights[ns]\n setVariationIndex += 1\n } else if (setVariationIndex == 2) {\n setVariationIndex += 1\n } else {\n setVariationIndex = 1\n weights = state.stage1weight + state.stage3increase\n }\n~}\n\n// **T3** One Leg variation.\nt3: Standing Calf Raise, Dumbbell / 2x15 60% 90s, 1x15+ 60% 90s / progress: custom() {~\n if (completedReps[ns] >= 25) {\n weights = completedWeights[ns] + 2kg\n }\n~}\n\n// **T3** Band variation. Start with the blue band.\n// For every completed workout, it adds 1 rep/set up to 25 reps. Then reset and change the band.\nt3: Lat Pulldown, Band / 2x16 0kg 90s, 1x16+ 0kg 90s / warmup: none / progress: dp(5kg, 15, 25)\n\n/// t3: Tricep Extension / ...t3: Standing Calf Raise[1] / progress: custom() { ...t3: Standing Calf Raise }\n\n// **Abs** Rest timer is used as an timer here, so mark the set done when you start your set.\n// You can use the 'reps' value to count down to your time.\nabs: Plank, Bodyweight / 2x20 0kg 20s, 1x20+ 0kg / warmup: none / progress: custom() {~\n if (completedReps[ns] >= reps[ns]+10) {\n reps += 5\n timers += 5\n }\n~}\n\n// ...abs: Plank\nabs: Side Plank, Bodyweight / ...abs: Plank, Bodyweight / progress: custom() { ...abs: Plank, Bodyweight }","id":"htyoqlau"},{"name":"Shoulder Day","exerciseText":"// **T1** It starts with **85% of 5RM** (or approximately **75% or 1RM**).\n// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.\n// There's the RM calculator there to help find it out if you don't know it\n\n// **T1**\n\n// **T1** Retest week, you may skip warmups. Find your new 5RM (5 rep max), as follows\n// * Start with the bar, do 5 reps.\n// * Throw on some more weight, do 5 reps.\n// * Repeat, when the bar starts to get heavy, make smaller jumps.\n// * When you finally get to a set that is hard, but you do it - take that number, long press **5RM Test** set, and set the weight you did\n// * Tap on the \"New 5RM\" set to mark it completed\nt1: Overhead Press, Barbell / 4x3 75%, 1x3+ 75% / 5x2 75%, 1x2+ 75% / 9x1 75%, 1x1+ 75% / 1x5 75% (5RM Test) / progress: custom(increase: 2kg) { ...t1: Squat }\n\n// **TP** For warm-up, do 5 reps of Scapular Pull Ups.\ntP: Pull Up, Bodyweight / 4x3 0kg 90s, 1x3+ 0kg 90s / warmup: 1x5 1kg / progress: custom() {~ \n if (completedReps[ns] >= reps[ns]+3){\n reps += 1\n }\n\n if (completedReps[ns] >= 10) {\n weights = completedWeights[ns] + 5kg\n reps = 3\n }\n~}\n///dp(5kg, 3, 10)\n\n// **T2** Start with **65% of 5RM**.\n// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.\n// There's the RM calculator there to help find it out if you don't know it\n\n// **T2**\nt2: Romanian Deadlift, Dumbbell / 3x10 55% / 3x8 55% / 3x6 55% / warmup: 1x5 0kg, 1x5 65% / progress: custom(stage1weight: 0kg, increase: 4kg, stage3increase: 10kg) { ...t2: Incline Bench Press, Dumbbell }\n\n// **T3** Deficit Pendlay Row. Place a weight under your feet for better lats stretch.\nt3: Pendlay Row, Barbell / ...t3: Standing Calf Raise[1] / 26kg / progress: custom() { ...t3: Standing Calf Raise, Dumbbell }\n\n/// t3: Bicep Curl / ...t3: Standing Calf Raise[1] / progress: custom() { ...t3: Standing Calf Raise }\n\n// **T3** Lean-In, One Arm, variation for more tension.\nt3: Lateral Raise, Dumbbell / ...t3: Standing Calf Raise[1] / progress: custom() { ...t3: Standing Calf Raise, Dumbbell }\n\n// **Abs** Corkscrew - Do the reverse crunch but twist your body a little at the end.\n// https://youtu.be/HhXl6NAxUAo?si=LLNQ7xePJ15xrVRr&t=138\nabs: Reverse Crunch, Bodyweight / 2x10 0kg 60s, 1x10+ 0kg 60s / progress: dp(5kg, 10, 20)","id":"bjphpais"},{"name":"Chest Day","exerciseText":"// **T1** It starts with **85% of 5RM** (or approximately **75% or 1RM**).\n// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.\n// There's the RM calculator there to help find it out if you don't know it\n\n// **T1**\n\n// **T1** Retest week, you may skip warmups. Find your new 5RM (5 rep max), as follows\n// * Start with the bar, do 5 reps.\n// * Throw on some more weight, do 5 reps.\n// * Repeat, when the bar starts to get heavy, make smaller jumps.\n// * When you finally get to a set that is hard, but you do it - take that number, long press **5RM Test** set, and set the weight you did\n// * Tap on the \"New 5RM\" set to mark it completed\nt1: Bench Press, Barbell / 4x3 75%, 1x3+ 75% / 5x2 75%, 1x2+ 75% / 9x1 75%, 1x1+ 75% / 1x5 75% (5RM Test) / progress: custom(increase: 2kg) { ...t1: Squat }\n\n// **TP** For warm-up to 5 reps of Scapular Pull Ups.\ntP: Pull Up, Bodyweight / ...tP: Pull Up, Bodyweight[2]\n\n// **T2** Start with **65% of 5RM**.\n// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.\n// There's the RM calculator there to help find it out if you don't know it\n\n// **T2**\nt2: Squat, Barbell / 3x10 55% / 3x8 55% / 3x6 55% / progress: custom(stage1weight: 0kg, increase: 4kg, stage3increase: 10kg) { ...t2: Incline Bench Press, Dumbbell }\n\n// **T3** Lean forward for chest activation. **Avoid standing straight** as it will shift focus to more triceps activation.\nt3: Chest Dip, Bodyweight / 2x8 0kg 90s, 1x8+ 0kg 90s / warmup: none / progress: dp(5kg, 8, 15)\n\n// **T3** Slow reps to minimize momentum.\nt3: Chest Fly, Dumbbell / ...t3: Standing Calf Raise[1] / progress: custom() { ...t3: Standing Calf Raise, Dumbbell }\n\n/// t3: Tricep Extension / ...t3: Standing Calf Raise[1]\n\n// **Abs**\nabs: Hanging Leg Raise, Bodyweight / 2x10 0kg, 1x10+ 0kg / warmup: none\n\n// **Abs**\nabs: Side Bend, Dumbbell / 3x10 16kg / 3x8 16kg / 3x6 16kg / warmup: none / progress: custom(stage1weight: 0kg, increase: 2kg, stage3increase: 4kg) { ...t2: Incline Bench Press, Dumbbell }","id":"ygzetrih"},{"name":"Back Day","exerciseText":"// **T1** It starts with **85% of 5RM** (or approximately **75% or 1RM**).\n// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.\n// There's the RM calculator there to help find it out if you don't know it\n\n// ! **T1**\n\n// **T1** Retest week, you may skip warmups. Find your new 5RM (5 rep max), as follows\n// * Start with the bar, do 5 reps.\n// * Throw on some more weight, do 5 reps.\n// * Repeat, when the bar starts to get heavy, make smaller jumps.\n// * When you finally get to a set that is hard, but you do it - take that number, long press **5RM Test** set, and set the weight you did\n// * Tap on the \"New 5RM\" set to mark it completed\nt1: Deadlift, Barbell / 4x3 45kg, 1x3+ 45kg / 5x2 45kg, 1x2+ 45kg / 9x1 45kg, 1x1+ 45kg / 1x5 45kg (5RM Test) / progress: custom(increase: 4kg) { ...t1: Squat }\n\n\n// **TP** For warm-up to 5 reps of Scapular Pull Ups.\ntP: Chin Up / ...tP: Chin Up, Bodyweight[1]\n\n\n// **T2** Start with **65% of 5RM**.\n// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.\n// There's the RM calculator there to help find it out if you don't know it\n\n// ! **T2** Seated One Arm Arnold/Shoulder Press for better isolation and hypertrophy.\n// Change to standing for better stabilization growth. Can be done alternating as well.\nt2: Arnold Press, Dumbbell / 3x10 55% / 3x8 55% / 3x6 55% / progress: custom(stage1weight: 0kg, increase: 2kg, stage3increase: 4kg) { ...t2: Incline Bench Press, Dumbbell }\n\n// **T3** Weight shows the rack level for the bar. 8 is highest and 0 is lowest.\n// Change exercise after finishing level 0.\nt3: Inverted Row, Bodyweight / 2x15 8kg 90s, 1x15+ 8kg 90s / progress: custom() {~ \n if (completedReps[ns] >= 25) {\n weights = completedWeights[ns] - 1kg\n }\n~}\n\n// **T3**\nt3: Reverse Fly, Dumbbell / ...t3: Standing Calf Raise[1] / progress: custom() { ...t3: Standing Calf Raise, Dumbbell }\n\n/// t3: Bicep Curl / ...t3: Standing Calf Raise[1]\n\n// **Abs** Upper Circle Crunch - Instead of doing the normal crunches, rotate your upper body as to lift off your shoulder blades from the ground.\n// https://youtu.be/HhXl6NAxUAo?si=IcV83C4xtkO5jolG&t=237\nabs: Crunch, Bodyweight / ...abs: Reverse Crunch, Bodyweight","id":"tympjihu"},{"name":"Arm Day","exerciseText":"/// Shoulders Stability\n\n// **T3** Band variation. Start with the blue band.\n// For every completed workout, it adds 1 rep/set up to 25 reps. Then reset and change the band.\n// https://youtu.be/i4ve0nuXz0M?si=WHrWACUxXredlo85&t=160\nt3: Band Pull-Aparts / ...t3: Lat Pulldown, Band\n\n// **T3** Will transition into \"External Rotation with Arm Supported at 90°\" after getting used to this.\n// And lastly, change to \"Sidelying External Rotations\".\n// https://youtu.be/1Wy8jh4QQH8?si=JH8KsocTouf2n09h&t=278\nt3: Elbow on Knee External Shoulder Rotation / ...t3: Standing Calf Raise, Dumbbell[1] / progress: custom() { ...t3: Standing Calf Raise, Dumbbell }\n\n// **T3** Band variation. Start with the blue band.\n// For every completed workout, it adds 1 rep/set up to 25 reps. Then reset and change the band.\n// https://www.youtube.com/watch?v=CU4Xc2qlLC0\nt3: Face Pull / ...t3: Lat Pulldown, Band\n\n/// Biceps\n\n// **T2** Start with **65% of 5RM**.\n// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.\n// There's the RM calculator there to help find it out if you don't know it\n\n// ! **T2** Superset with Reverse Curl.\nt2: Incline Curl, Dumbbell / 3x10 55% / 3x8 55% / 3x6 55% / progress: custom(stage1weight: 0kg, increase: 2kg, stage3increase: 4kg) { ...t2: Incline Bench Press, Dumbbell }\n\n// **T3** Superset with Shrugs.\nt3: Reverse Curl, Dumbbell / ...t3: Standing Calf Raise, Dumbbell[1] / progress: custom() { ...t3: Standing Calf Raise, Dumbbell }\n\n// **T3**\nt3: Shrug, Dumbbell / ...t3: Standing Calf Raise, Dumbbell[1] / progress: custom() { ...t3: Standing Calf Raise, Dumbbell }\n\n/// Forearms & Wrists\n\n// **T3** With your hands hanging by your side, slowly curl your wrists as much as possible to both sides. **Superset with wrist deviation**.\nt3: Wrist Curl, Dumbbell / ...t3: Standing Calf Raise, Dumbbell[1] / progress: custom() { ...t3: Standing Calf Raise, Dumbbell }\n\n/// Triceps\n\n// **T2** Start with **65% of 5RM**.\n// You can adjust your 1RM by clicking the **edit** icon, and setting the **1 Rep Max** value.\n// There's the RM calculator there to help find it out if you don't know it\n\n// ! **T2** One Arm variation. Slow controlled reps. Superset with next exercise.\nt2: Triceps Extension, Dumbbell / 3x10 55% / 3x8 55% / 3x6 55% / progress: custom(stage1weight: 0kg, increase: 2kg, stage3increase: 4kg) { ...t2: Incline Bench Press, Dumbbell }\n\n// **T3** Band variation. Start with the blue band.\n// For every completed workout, it adds 1 rep/set up to 25 reps. Then reset and change the band.\nt3: Triceps Pushdown, Band / 2x15 0kg 90s, 1x15+ 0kg 90s / warmup: none / progress: dp(5kg, 15, 25)","id":"zfubprmt"}],"id":"uesdmqyt"}],"vtype":"planner"},"vtype":"program"},"version":"20250720120545","settings":{"timers":{"warmup":90,"workout":180,"reminder":900},"units":"lb"}},"shouldSyncProgram":false,"isMobile":false,"revisions":[]}