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

Next 10 executions

  1. 1Thu, Apr 9, 2026, 2:00 AM
  2. 2Fri, Apr 10, 2026, 2:00 AM
  3. 3Sat, Apr 11, 2026, 2:00 AM
  4. 4Sun, Apr 12, 2026, 2:00 AM
  5. 5Mon, Apr 13, 2026, 2:00 AM
  6. 6Tue, Apr 14, 2026, 2:00 AM
  7. 7Wed, Apr 15, 2026, 2:00 AM
  8. 8Thu, Apr 16, 2026, 2:00 AM
  9. 9Fri, Apr 17, 2026, 2:00 AM
  10. 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

ExpressionMeaning
0 2 * * *Every day at 2:00 AM UTC (nightly build)
0 9 * * 1-5Weekdays at 9:00 AM UTC
*/15 * * * *Every 15 minutes
0 0 * * 0Sundays 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.schedule is 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.