Cron without the guesswork
A cron expression is five fields squeezed into a short string. Minute, hour, day of month, month, day of week. It's compact, and it's easy to get wrong. One misplaced star and your backup runs every minute instead of every night.
The builder lets you set each field with controls, then writes the expression and explains it in plain English. It also lists the next ten run times so you can check the schedule before you trust it.
Reading the five fields
From left to right: minute, hour, day of the month, month, day of the week. A star means every value. A slash sets a step, so */15 in the minute field means every fifteen minutes. A dash gives a range and a comma gives a list.
Take 0 0 1 1 *. Minute 0, hour 0, first day, first month, any weekday. That's midnight on January 1st, once a year.
Common schedules
Presets cover the usual ones, and you can tweak them from there. Every 30 minutes is */30 * * * *. Every five minutes during business hours is */5 9-17 * * 1-5, which also limits it to weekdays.
The last day of every month is trickier. Standard cron has no clean way to say it. A common trick is to run on days 28 to 31 and let the script check whether tomorrow is the first. Some cron flavors add a special symbol for it, so check what your system supports.
Day of month versus day of week
This one catches people out. If you set both fields to something other than a star, many cron implementations run the job when either one matches, not when both do. So 0 9 15 * 1 fires on the 15th and also on every Monday. If you want only Mondays, leave day of month as a star.
Time zones and daylight saving
A cron expression has no time zone of its own. The server's clock decides. When clocks change for daylight saving, a job set inside the skipped hour may not run, and a job in the repeated hour may run twice. Many teams set servers to UTC to avoid the whole problem.
Test before you deploy
Look at the next ten run times. If they match what you meant, copy the expression. If the dates look strange, adjust and check again. It takes ten seconds and saves a missed backup or a flood of emails.