Skip to content

Cron Expression Builder

Write it, read it back in plain English, and see when it actually fires.

At 02:00.

Next runs — UTC

  1. Fri, 31 Jul 2026, 02:00
  2. Sat, 01 Aug 2026, 02:00
  3. Sun, 02 Aug 2026, 02:00
  4. Mon, 03 Aug 2026, 02:00
  5. Tue, 04 Aug 2026, 02:00

Five fields. Runs in the server's local timezone.

Cron uses the server’s timezone, which is often not yours. Check before you trust a time.

Fields

  • minute059
  • hour023
  • dom131
  • month112
  • dow07

Cron daily at 2am

0 2 * * *

0 2 * * * runs once a day at 02:00 server time. It is the classic slot for backups and cleanup — and, in any country that observes daylight saving, the single worst hour to choose: 02:00 is exactly where clocks jump. Pick 01:00 or 03:00 and the problem disappears.

Frequently asked questions

What happens to a 2am job when the clocks change?
In a daylight-saving timezone, the job runs twice on the day clocks go back — 02:00 happens twice — and not at all on the day they jump forward, because 02:00 never occurs. The preview above flags both. Scheduling at 01:00 or 03:00 avoids it, and running the server in UTC avoids it entirely.
Which timezone does cron use?
The server's local timezone, unless the system sets CRON_TZ or the platform overrides it. GitHub Actions always uses UTC. This is worth checking rather than assuming — it is the other half of why 2am jobs surprise people.
How do I run at 2:30am instead?
Put the minutes first: 30 2 * * *. The minute field always comes before the hour, which is the reverse of how you say it out loud.