Platform schedule guide

Cloudflare Workers Cron Triggers Guide

Schedule Cloudflare Workers with cron triggers: five-field UTC schedules, wrangler.toml examples, limits, and CronWizard export workflow.

Platform behavior reviewed against the official documentation on August 5, 2026.

Format
5-field cron
Timezone
UTC only
Config
wrangler.toml [triggers] crons
Execution
Worker fetch handler

Overview

Cloudflare Workers can run on a cron schedule through Cron Triggers defined in wrangler.toml or the dashboard.

Triggers use standard five-field cron syntax evaluated in UTC.

Workers cron is ideal for edge maintenance, cache warming, and lightweight polling without managing a central scheduler.

Cloudflare cron format

Cron triggers accept minute, hour, day-of-month, month, and day-of-week fields.

There is no seconds field and no timezone override — always UTC.

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *
Cloudflare Workers schedule fields and valid values
FieldPositionValuesPlatform note
Minute10-59UTC minute.
Hour20-23UTC hour.
Day of month31-31Standard cron semantics.
Month41-12Numeric months.
Day of week50-6Sunday is 0.

Copyable schedule examples

Every six hours UTC

0 */6 * * *

[triggers]
crons = ["0 */6 * * *"]

Weekdays 09:00 UTC

0 9 * * 1-5

[triggers]
crons = ["0 9 * * 1-5"]

Every 15 minutes

*/15 * * * *

Watch Workers subrequest limits at high frequency.

First day of month midnight UTC

0 0 1 * *

wrangler.toml setup

Add cron triggers and export a scheduled handler in your Worker.

name = "my-worker"
main = "src/index.ts"

[triggers]
crons = ["0 9 * * 1-5"]

export default {
  async scheduled(event, env, ctx) {
    // cron work
  },
};

Deployment checklist

  1. Define crons in wrangler.toml or the Cloudflare dashboard.
  2. Implement a scheduled() handler in your Worker.
  3. Deploy with wrangler deploy and verify invocations in the dashboard.
  4. Use CronWizard to validate expressions before editing wrangler.toml.

UTC-only evaluation

Cloudflare cron triggers always run in UTC. Convert local business hours to UTC or document the UTC equivalent in runbooks.

Use CronWizard next-run preview with timezone UTC when authoring triggers.

Limits and platform behavior

UTC only
No IANA timezone field on cron triggers.
Worker limits
CPU time and subrequest quotas apply to each invocation.
Minimum interval
Very aggressive schedules can hit account limits — monitor usage.
No built-in retry semantics
Implement idempotency in the Worker.

Production gotchas

  • UTC vs local

    09:00 UTC is not 09:00 in Istanbul without conversion.

  • Cold starts

    First invocation after idle may add latency.

  • Duplicate delivery

    Design handlers to tolerate occasional retries.

  • Dashboard vs toml drift

    Keep wrangler.toml as source of truth in git.

Frequently asked questions

Does Cloudflare Workers support Quartz cron?

No. Use five-field Unix-style cron in UTC.

Can I set a timezone?

Not on cron triggers. Convert to UTC or schedule from an external system.

Where do I test expressions?

Use the CronWizard validator and preview next UTC runs before deploy.

How do I export config?

Build the schedule in CronWizard and copy the crons array into wrangler.toml.

Official documentation and related guides