Toolman 100% local

Cron expression: every day at 06:00

0 6 * * *

Runs once a day at 06:00 (6:00 AM) server time.

What each field means

FieldValueMeaning
minute0minute 0
hour6hour 6
day of month*every day of month
month*every month
day of week*every day of week

Next runs

Starting from 1 January 2026, 00:00 UTC:

Things to watch

Remember this is the server's local time zone, not the user's. Run the server in UTC and convert for display if the exact wall-clock time matters to people.

Six in the morning is the last comfortably quiet hour in European time zones. Anything scheduled here should be finished rather than starting when people arrive, because from this point the machine stops being idle. It is a reasonable slot for the final step of an overnight chain — the one that publishes the result rather than computes it.

Assuming the server runs UTC, a job firing at this hour lands on the middle of the working day in Mumbai, Singapore, Tokyo; outside working hours but waking or winding down in Berlin, Sydney; the middle of the night in New York, London. That matters less for the machine than for the people: whoever is on call when this breaks is determined by this row, not by the schedule.

If the server runs UTC, this is
New York01:00
London06:00
Berlin07:00
Mumbai11:30
Singapore14:00
Tokyo15:00
Sydney17:00

The same schedule elsewhere

# crontab
0 6 * * * /usr/local/bin/my-job >> /var/log/my-job.log 2>&1

# GitHub Actions (.github/workflows/job.yml) — always UTC
on:
  schedule:
    - cron: '0 6 * * *'

# Kubernetes CronJob
spec:
  schedule: "0 6 * * *"

# AWS EventBridge — six fields, and ? in one of the day fields
cron(0 6 * * ? *)

Frequently asked questions

What is the cron expression to run a job every day at 06:00?

0 6 * * * — Runs once a day at 06:00 (6:00 AM) server time.

Which time zone does cron use?

The server's local time zone, unless the scheduler says otherwise. GitHub Actions always uses UTC. Kubernetes CronJobs use UTC unless you set spec.timeZone. Running servers in UTC and converting only for display avoids an entire class of daylight-saving bugs.

What happens if the previous run is still going?

Standard cron starts a new one regardless, so long-running jobs can pile up. Wrap the command in flock -n /var/lock/my-job.lock, or set concurrencyPolicy: Forbid on a Kubernetes CronJob.

Why did my cron job not run at all?

The three usual causes: the script is not executable, the command relies on a PATH or environment variable that cron does not set, or output went nowhere because no mail transport is configured. Redirect stdout and stderr to a log file and the reason usually becomes obvious.

Other schedules

Build a custom cron expression →