Cron Expression Builder โ Write and Understand Cron Syntax
Cron expressions power scheduled jobs on Linux servers, cloud functions, CI pipelines, and almost every backend system. They're terse, easy to get wrong, and notoriously hard to read at a glance. DevDeck's Cron Expression Builder gives you a visual editor, instant plain-English translation, and next-run preview โ so you can write and verify a schedule in seconds.
What Is a Cron Expression?
A cron expression is a five-field string that defines when a job should run. Each field represents a unit of time โ minute, hour, day-of-month, month, and day-of-week โ and they're separated by spaces. The scheduler checks the expression every minute and runs the job when all five fields match the current time. The asterisk (*) means 'any value', so '* * * * *' runs every minute, and '0 9 * * 1-5' runs at 9:00 AM on weekdays.
Cron Syntax Field Reference
Minute (0โ59) โ position 1, controls the minute of the hour
Hour (0โ23) โ position 2, controls the hour of the day
Day of Month (1โ31) โ position 3, controls the specific day within a month
Month (1โ12) โ position 4, controls which months the job runs
Day of Week (0โ7) โ position 5, where 0 and 7 both mean Sunday
Special Characters
* โ every value in the field (e.g. * in minute = every minute)
*/n โ every nth value (e.g. */15 in minute = every 15 minutes)
n,m โ list of specific values (e.g. 1,15 in day = 1st and 15th)
n-m โ range (e.g. 1-5 in day-of-week = Monday through Friday)
n-m/s โ range with step (e.g. 0-23/6 in hour = every 6 hours)
Common Cron Patterns
'* * * * *' โ every minute
'0 * * * *' โ at the top of every hour
'0 0 * * *' โ every day at midnight
'0 9 * * 1-5' โ weekdays at 9:00 AM
'*/15 * * * *' โ every 15 minutes
'0 0 1 * *' โ first of every month at midnight
'0 0 * * 0' โ every Sunday at midnight
'0 12 * * 1,3,5' โ Mon, Wed, Fri at noon
Day-of-Month vs Day-of-Week Interaction
When both day-of-month and day-of-week are set to anything other than *, most schedulers use OR logic โ the job runs if either condition is met. For example, '0 0 1 * 1' runs on the 1st of every month AND every Monday. To restrict to a specific day of the month within a specific weekday, you need application-level logic rather than cron alone. DevDeck's builder surfaces this in the plain-English description so you can spot unexpected behavior before deploying.
How to Use the Cron Expression Builder
Type a cron expression directly into the expression input at the top โ the builder validates it as you type with a green/red indicator
Or use the Quick Presets chips (Every minute, Hourly, Daily midnight, etc.) to start from a known-good base
Fine-tune each field using the preset chips per field or by editing the raw value in the field's input box
The right panel shows a plain-English description of your schedule and the next 5 upcoming run times
Click 'Copy Expression' to copy the final cron string to your clipboard
Cron in the Cloud
Cloud schedulers use cron syntax with minor variations. AWS EventBridge uses a six-field format with an added seconds field at position 0. Google Cloud Scheduler follows standard 5-field POSIX cron. GitHub Actions workflows use the standard 5-field format inside 'cron:' under 'schedule:'. Kubernetes CronJobs also use standard 5-field cron. Always verify behavior in your specific runtime โ DevDeck's builder follows the standard 5-field POSIX format used by Linux cron and most cloud platforms.
Validating Cron Expressions
Check the validity dot next to the expression input โ green means parseable, red means invalid syntax
Read the plain-English description โ if it doesn't match your intent, the expression needs adjustment
Check the next 5 run times โ verify the dates and times align with your expected schedule
Watch for OR-logic surprises when both day-of-month and day-of-week are non-wildcard
Test edge cases: February for monthly jobs, year-end dates, and DST transitions if your scheduler respects timezones
Ready to try it?
Related Tools
Unix Timestamp Converter
Unix timestamps are the number of seconds (or milliseconds) since January 1, 197โฆ
Command Playground
Command Playground is DevDeck's smart routing layer. Paste any data โ a JSON bloโฆ
Regex Tester
Regular expressions are powerful but notoriously hard to write and debug. DevDecโฆ
UUID Generator
UUIDs are the standard way to generate unique identifiers without a central authโฆ
Frequently Asked Questions
Yes, fully free with no account needed.
No. Everything runs locally in your browser โ nothing is sent to a server.
The most common cause is having both day-of-month and day-of-week set to non-wildcard values. Standard cron uses OR logic in this case โ the job runs when either condition matches, not only when both match. Set one of the two to '*' if you want stricter control.
Both represent Sunday. Standard POSIX cron uses 0 for Sunday, but some implementations also accept 7. DevDeck normalizes both to Sunday when parsing and generating the plain-English description.
Standard cron accepts named values (JAN, FEB, MON, TUE, etc.) in some implementations, but numeric values are universally supported. DevDeck's builder uses numeric values to ensure maximum compatibility.
The preview computes run times from the current moment in your local timezone. It does not account for DST transitions or leap seconds. For production systems, always validate in the scheduler's own timezone settings.