GitLab CI Pipeline Schedule Cron
GitLab CI scheduled pipelines use the standard five-field cron format in the Interval Pattern field. You pick a timezone in the same dialog, and GitLab runs the pipeline on that cron in the chosen zone.
Where to set it
Project → Build → Pipeline schedules → New schedule. The Interval Pattern is a 5-field cron expression. Nightly at 02:00: 0 2 * * *. Every weekday at 07:00: 0 7 * * 1-5.
Timezone
The schedule dialog has a Cron timezone dropdown. The expression is evaluated in that zone — set it to your team's timezone instead of UTC if you want local run times.
Guard jobs in .gitlab-ci.yml
Use rules to run certain jobs only on schedules: rules: - if: '$CI_PIPELINE_SOURCE == "schedule"'. This keeps heavy nightly jobs out of normal push pipelines.
Minimum interval
On shared runners the effective minimum is often hourly; sub-hourly schedules may be throttled. Check your instance's cron worker frequency.
FAQ
What cron format does GitLab CI use for schedules?
Standard 5-field cron (minute hour day month day-of-week) in the Interval Pattern field, with a timezone chosen in the same dialog.
How do I run a job only on a schedule in GitLab CI?
Add rules: - if: '$CI_PIPELINE_SOURCE == "schedule"' to that job so it runs on scheduled pipelines but not on normal pushes.
Why doesn't my every-minute GitLab schedule run that often?
GitLab's cron worker typically polls hourly on shared setups, so sub-hourly schedules are throttled. The minimum useful interval is usually one hour.