Cron every day at 2am

At 02:00 every day.

0 2 * * *

minute · hour · day of month · month · day of week

What this expression selects

At 02:00 every day. This is a five-field calendar schedule, interpreted in the timezone you configure. It is not an instruction to wait a fixed duration after the last completion.

Common mistakes

02:00 can fall inside a daylight-saving gap in some regions. CronPulse moves a skipped local time to the first valid minute; repeated local times fire once.

Next five runs in UTC

Computed at build time from . These are examples, not a live clock.

2026-10-19T02:00:00.000Z
2026-10-20T02:00:00.000Z
2026-10-21T02:00:00.000Z
2026-10-22T02:00:00.000Z
2026-10-23T02:00:00.000Z

A nearby variation

0 9 * * MON-FRI

At 09:00 every Monday, Tuesday, Wednesday, Thursday, Friday. Compare it with the expression above before copying; the selected fields change the calendar times.

Preview live runs in your timezone ↗

Monitor the completed work

Copy a private ping URL from a CronPulse check. Set its schedule to 0 2 * * * in the same timezone as your job runner, and add grace for runtime and scheduling delay. Send success after the work finishes, not when it is enqueued.

Add success and exit-code reporting to crontab. Missing pings are evaluated once a minute; this is not sub-minute monitoring.

Questions

Which time zone does this use?
The examples use UTC. Choose your IANA time zone in the cron helper; your host scheduler must use the same zone.
Does cron wait for the last job to finish?
This expression chooses clock times. It does not provide locking or an elapsed timer. Configure concurrency in the job runner.

Related schedules

Cron every weekday

Cron first day of month

Give your next job a heartbeat.

20 checks free. No card. Built in Ireland.

Create your first check ↗