CircleCI
CircleCI Scheduled Pipeline Cron Builder
CircleCI Scheduled Pipelines use standard 5-field Unix cron, UTC. Build your expression below, then add it to your .circleci/config.yml using the schedules: block (the new syntax — not the deprecated workflows.triggers.schedule).
At 02:00 AM
Valid
- 1Thu, Apr 9, 2026, 2:00 AM
- 2Fri, Apr 10, 2026, 2:00 AM
- 3Sat, Apr 11, 2026, 2:00 AM
- 4Sun, Apr 12, 2026, 2:00 AM
- 5Mon, Apr 13, 2026, 2:00 AM
- 6Tue, Apr 14, 2026, 2:00 AM
- 7Wed, Apr 15, 2026, 2:00 AM
- 8Thu, Apr 16, 2026, 2:00 AM
- 9Fri, Apr 17, 2026, 2:00 AM
- 10Sat, Apr 18, 2026, 2:00 AM
New Schedule Triggers Syntax (Recommended)
# .circleci/config.yml
version: 2.1
# 1. Define pipeline parameters
parameters:
run-schedule:
type: boolean
default: false
# 2. Define the schedule
schedules:
- name: nightly-build
cron: "0 2 * * *"
filters:
branches:
only: [main]
pipeline-parameters:
run-schedule: true
# 3. Use the parameter in the workflow
workflows:
nightly:
when: << pipeline.parameters.run-schedule >>
jobs:
- build Common Patterns
| Expression | Meaning |
|---|---|
0 2 * * * | Every day at 2:00 AM UTC (nightly build) |
0 9 * * 1-5 | Weekdays at 9:00 AM UTC |
*/15 * * * * | Every 15 minutes |
0 0 * * 0 | Sundays at midnight UTC |
0 0 1 * * | 1st of every month at midnight UTC |
Key Constraints
- Standard 5-field Unix cron, UTC — no timezone override
- Use
schedules:top-level block (new syntax) —workflows.triggers.scheduleis deprecated - Scheduled runs set
pipeline.trigger_source = "scheduled_pipeline" - No @-aliases; no
?wildcard - Branch filters are defined in the schedule's
filters:block
CircleCI Schedule FAQ
What is the difference between the old and new CircleCI schedule syntax?
The old syntax used
workflows.triggers.schedule inside a workflow block. CircleCI has deprecated this in favor of "Scheduled Pipelines" — a first-class feature defined using a top-level schedules: block (or configured in the CircleCI UI). The new syntax is more flexible: it supports branch filters, parameter passing, and is managed independently of workflows. The old syntax still works but new projects should use schedules:.What cron syntax does CircleCI support?
Standard 5-field Unix cron, UTC:
minute hour day-of-month month day-of-week. Day-of-week: 0=Sunday, 6=Saturday. No @-aliases, no Quartz 6-field syntax, no ?. All times are UTC — there is no timezone override.Can I pass parameters to a scheduled CircleCI pipeline?
Yes — this is one of the advantages of the new Scheduled Pipelines system. Define pipeline parameters and set them in the schedule. For example, you can have a single workflow that runs differently on scheduled vs. push triggers by checking
<< pipeline.trigger_source >> (value: scheduled_pipeline for scheduled runs) or a custom boolean parameter.How do I run a CircleCI job only on scheduled triggers?
In your workflow, add a
when condition: when: << pipeline.trigger_source == "scheduled_pipeline" >>. Or define a pipeline parameter like run-schedule: false (default false), set it to true in your schedule, and use when: << pipeline.parameters.run-schedule >> in the workflow.What is the minimum CircleCI schedule frequency?
CircleCI does not document a hard minimum interval. In practice, expressions like
* * * * * (every minute) are accepted, but very frequent schedules consume pipeline credits and may hit concurrency limits on your plan. Check your plan's concurrent workflow and credit limits before scheduling sub-5-minute intervals.