diff --git a/app/services/ci/pipeline_schedules/calculate_next_run_service.rb b/app/services/ci/pipeline_schedules/calculate_next_run_service.rb
index a1b9ab5f82ed9f29821c072959915a3d9364999c..064b004a5b822543d4f8bdc01e9856863fcffe3b 100644
--- a/app/services/ci/pipeline_schedules/calculate_next_run_service.rb
+++ b/app/services/ci/pipeline_schedules/calculate_next_run_service.rb
@@ -47,7 +47,13 @@ def plan_cron
 
           every_x_minutes = (1.day.in_minutes / daily_limit).to_i
 
-          Gitlab::Ci::CronParser.parse_natural("every #{every_x_minutes} minutes", Time.zone.name)
+          begin
+            Gitlab::Ci::CronParser.parse_natural("every #{every_x_minutes} minutes", Time.zone.name)
+          rescue ZeroDivisionError
+            # Fugit returns ZeroDivision Error if provided a number
+            # less than 1 in the expression.
+            nil
+          end
         end
       end
     end
diff --git a/spec/services/ci/pipeline_schedules/calculate_next_run_service_spec.rb b/spec/services/ci/pipeline_schedules/calculate_next_run_service_spec.rb
index 182c5bebbc1faa467121a01bdfc8eceae849afe6..b3bdfdee95622e939e268c8e56a9465a7e0e70d6 100644
--- a/spec/services/ci/pipeline_schedules/calculate_next_run_service_spec.rb
+++ b/spec/services/ci/pipeline_schedules/calculate_next_run_service_spec.rb
@@ -30,6 +30,8 @@
         # 1.day / 2.hours => 12 times a day and it is invalid because there is a minimum for plan limits.
         # See: https://docs.gitlab.com/ee/administration/instance_limits.html#limit-the-number-of-pipelines-created-by-a-pipeline-schedule-per-day
         '*/5 * * * *' | '0 * * * *'   | 1.day / 2.hours | Time.zone.local(2021, 5, 27, 11, 0) | Time.zone.local(2021, 5, 27, 12, 5)
+        '*/5 * * * *' | '0 * * * *'   | 2000            | Time.zone.local(2021, 5, 27, 11, 0) | Time.zone.local(2021, 5, 27, 12, 5)
+        '*/5 * * * *' | '0 * * * *'   | -24             | Time.zone.local(2021, 5, 27, 11, 0) | Time.zone.local(2021, 5, 27, 12, 5)
       end
 
       with_them do