// click any example to load it into the validator above
* * * * * mean in cron?
+
* * * * * means "run every single minute." The five fields are minute, hour, day of month, month, and day of week — each asterisk is a wildcard meaning "every possible value." So every minute, every hour, every day, every month, every weekday.
*/15 * * * * mean?
+
*/15 * * * * means "every 15 minutes." The */n syntax means "every n units starting from the minimum." So */15 in the minute field triggers at minutes 0, 15, 30, and 45 of every hour — 96 times per day.
0 9 * * 1-5. Breaking it down: 0 = at minute 0, 9 = at hour 9 (9 AM), * = any day of month, * = any month, 1-5 = Monday through Friday. The days of week use 0=Sunday, 1=Monday, ..., 6=Saturday.
0 0 1 * * to run at midnight on the 1st of every month. Change the first two fields to set a different time — for example 30 8 1 * * runs at 8:30 AM on the 1st of every month.
0 0 * * 0 and @weekly?
+
@weekly is a shorthand alias that expands to 0 0 * * 0 — midnight on Sunday. Other useful aliases: @daily = 0 0 * * *, @hourly = 0 * * * *, @monthly = 0 0 1 * *, @yearly = 0 0 1 1 *.
0 8-18/2 * * *. The 8-18/2 in the hour field means "from hour 8 to hour 18, every 2 hours" — so it runs at 8:00, 10:00, 12:00, 14:00, 16:00, and 18:00. This combines a range (a-b) with a step (/n).
systemctl status cron. (4) File permissions on your script. Use this tool to verify the expression is correct first.
CronExplainer is a free online cron expression validator and explainer for developers. Paste any standard 5-field cron expression to instantly see a plain English explanation, the next scheduled run times in your local timezone, and a detailed field-by-field breakdown. Supports all standard cron syntax including wildcards (*), step values (*/n), ranges (a-b), lists (a,b,c), and aliases (@daily, @weekly, etc.). Works entirely in your browser — no data is sent to any server.