Build a cron expression visually, or paste one to get a plain-English explanation of when it runs.
A string of five fields (minute, hour, day of month, month, day of week) used to schedule recurring tasks on Unix-like systems.
An asterisk (*) means "every" value for that field — for example, an asterisk in the hour field means the job runs every hour.
Use */15 in the minute field, with all other fields set to *. This means "every 15th minute."
This tool helps you build and understand cron expressions — the standard syntax used by Unix-like systems (Linux, macOS) and many task schedulers to define when a recurring job should run. Adjust each field individually and see the generated expression update live, along with a plain-English explanation.
Cron is the standard way to schedule recurring automated tasks on servers — backups, report generation, cache clearing, email digests, and countless other maintenance jobs run on a cron schedule. Getting the expression right is important since a misconfigured cron job can run too often (wasting resources) or not often enough (missing its intended purpose), and the terse five-field syntax is easy to misread without careful attention.
All expression building and explanation happens directly in your browser — nothing is sent to a server.
The explanation text is generated by reading each of the five fields and combining them into a sentence: it first figures out the time component (a specific minute and hour, an interval like "every 15 minutes," or "every minute of every hour"), then the day component (a specific weekday, a day of the month, or "every day"), and finally an optional month restriction. This mirrors how a developer would read a cron line out loud, which makes it easier to sanity-check a schedule before deploying it.
Cron syntax is terse by design, and a single misplaced field can turn a "run once a day" job into one that fires every minute. Pasting your intended schedule into this kind of builder and reading back the generated explanation is a quick sanity check before committing a crontab entry, a Kubernetes CronJob schedule, or a scheduled GitHub Actions workflow — all of which use the same five-field cron syntax.
Cron's day-of-week field runs from 0 to 6, with 0 representing Sunday (some implementations also accept 7 as Sunday). This differs from how people naturally count days starting with Monday, which is a common source of off-by-one scheduling mistakes — for example, setting 1 expecting Sunday when it actually means Monday.
When both the day-of-month and day-of-week fields are set to specific values rather than *, most cron implementations treat them as an OR condition — the job runs if either condition is true, not only when both match simultaneously. This is a frequently misunderstood part of cron syntax and worth double-checking with the generated explanation before relying on it for a production schedule.
Before cron-style schedulers, recurring tasks had to be triggered manually or through custom scripts with their own timing logic. Cron standardized this into a compact, portable syntax that works the same way across Linux servers, container orchestrators, and many SaaS scheduling features, which is why the same five-field format keeps showing up well beyond traditional Unix systems.
People looking for this kind of tool often search "cron expression generator," "crontab syntax checker," "what does this cron expression mean," "cron schedule explainer," and "cron job every 15 minutes syntax." This builder's live explanation and preset library cover all of these searches directly.
Since a bad cron schedule can silently run too often or not at all, it's worth building the expression here first, reading the generated explanation out loud, and comparing it against what you actually intended before pasting it into a production crontab, CI/CD pipeline, or job scheduler. A few seconds of verification is cheaper than debugging a job that fired at the wrong time in production.
Some schedulers extend the standard five-field format with a seconds field or special strings like @daily or @hourly as shortcuts. This tool focuses on the standard, widely portable five-field syntax supported by crontab, most CI/CD schedule triggers, and container orchestration tools, since that format is the one most systems expect by default.