crontool
Paste a schedule, read it in English, see the next runs.

Run a Cron Job Every Day at 11 PM

To run a job every day at 11 PM, use 0 23 * * *. It fires once a day at 23:00 server time — minute 0, hour 23, every day of the month, every month, every day of the week.

The crontab line

Run crontab -e and add:

0 23 * * * /usr/bin/bash /path/to/job.sh >> /path/to/job.log 2>&1

This runs once a day at 23:00. The five fields are minute, hour, day-of-month, month, day-of-week.

Field breakdown

0 23 * * *: minute 0, hour 23 (24-hour clock), the three * mean every day, every month, every weekday.

Change the minute or time

To fire at 11 PM thirty, set the minute field: 30 23 * * *. For a different hour, change the hour field (0–23).

Timezone

Cron uses the server's local time. Check it with timedatectl. If your box runs UTC, 23:00 is UTC — set CRON_TZ=Europe/London at the top of the crontab (modern cron) or set the hour in UTC.

FAQ

What is the cron expression for every day at 11 PM?

0 23 * * * runs once a day at 23:00 server time. The first field is the minute, the second is the hour (24-hour).

How do I run a job at 11 PM on weekdays only?

Add 1-5 in the day-of-week field: 0 23 * * 1-5 runs Monday to Friday at 23:00.

Why does my daily job run at the wrong time?

Cron uses the server timezone, not yours. Check with timedatectl and either convert the hour to the server's zone or set CRON_TZ at the top of the crontab.