What is a cron expression?
A cron expression is a string of five space-separated fields that define a schedule for repeated tasks: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6, where 0 is Sunday). Special characters like * (any), / (step), - (range), and , (list) combine to express complex schedules.
What does */5 mean in a cron expression?
*/5 means "every 5 units". In the minute field, */5 means every 5 minutes (0, 5, 10, 15…). In the hour field, */5 means every 5 hours. The asterisk means "start from the minimum value of the field", and /5 means step by 5.
What is the difference between 0 * * * * and * * * * *?
* * * * * runs every minute. 0 * * * * runs once per hour, at minute 0 (i.e., at the top of each hour: 00:00, 01:00, 02:00…). The first field is the minute field, so 0 pins execution to the start of each hour.
Why does 1 mean Sunday in a Quartz cron expression?
Quartz.NET numbers day-of-week from 1 = Sunday to 7 = Saturday, while standard cron and Hangfire (Cronos) use 0 = Sunday, 1 = Monday. So "0 0 12 ? * 1" runs on Sundays in Quartz, and the same 1 means Monday elsewhere — a silent wrong-day bug. Quartz also needs ? in exactly one of day-of-month and day-of-week. Pick the Quartz.NET dialect and the parser flags the numbering and shows how the other dialects read the same text. Names like MON-FRI mean the same everywhere.
Why does the next run calculator show local times?
The cron parser uses your browser's local timezone for the next-run display. Cron daemons on servers run in the server's timezone (usually UTC). If your server is on UTC and you're viewing from a different timezone, the displayed times are offset accordingly.
What cron format does Hangfire use?
Hangfire parses cron with the Cronos library: five fields, or six with seconds first. It supports L, W and #, treats ? like *, and accepts 0 or 7 for Sunday. Unlike standard cron, when both day-of-month and day-of-week are set it requires both, so "0 0 13 * 5" is Friday the 13th. Recurring jobs run in UTC unless you pass a time zone. It also accepts the @daily-style macros and @every_second.