Run a Cron Job Every Day at 1 PM
To run a job every day at 1 PM, use 0 13 * * *. It fires once a day at 13:00 server time — minute 0, hour 13, every day of the month, every month, every day of the week.
The crontab line
Run crontab -e and add:
0 13 * * * /usr/bin/bash /path/to/job.sh >> /path/to/job.log 2>&1
This runs once a day at 13:00. The five fields are minute, hour, day-of-month, month, day-of-week.
Field breakdown
0 13 * * *: minute 0, hour 13 (24-hour clock), the three * mean every day, every month, every weekday.
Change the minute or time
To fire at 1 PM thirty, set the minute field: 30 13 * * *. 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, 13: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 1 PM?
0 13 * * * runs once a day at 13:00 server time. The first field is the minute, the second is the hour (24-hour).
How do I run a job at 1 PM on weekdays only?
Add 1-5 in the day-of-week field: 0 13 * * 1-5 runs Monday to Friday at 13: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.