Cron expression
*/30 * 31 JAN *
Every 30 minutes, every hour, on day 31 of the month, only in January.
Next runs · UTC
- —
- —
- —
- —
- —
September 2026 · UTC
0 runs
Read more in the dedicated guide: Cron every 30 minutes.
What this cron means, field by field
Each field of */30 * 31 JAN * controls one dimension of the schedule. Hover over any value in the editor above to see its tooltip; the table below summarises the same information.
| Field | Value | Means | Range / hint |
|---|---|---|---|
| minute | */30 | every 30 minutes | 0-59. The minute(s) of the hour the job will fire. |
| hour | * | every value (wildcard) | 0-23. The hour(s) of the day the job will fire (0 = midnight, 23 = 11 PM). |
| day of month | 31 | at day of month 31 | 1-31. The day(s) of the month. Use * if you want every day. |
| month | JAN | at month JAN | 1-12 or JAN-DEC. The month(s). Use * for every month. |
| day of week | * | every value (wildcard) | 0-7 or SUN-SAT (0 and 7 both mean Sunday). Use * for every day of the week. |
Next 5 runs
Shown in UTC. Change the timezone in the editor.
Next runs · UTC
- Sun 31 Jan · 00:00in 136d 0h
- Sun 31 Jan · 00:30
- Sun 31 Jan · 01:00
- Sun 31 Jan · 01:30
- Sun 31 Jan · 02:00
Similar cron expressions
Common variations and tweaks of */30 * 31 JAN *.
*/15 * 31 JAN *Every 15 minutes, on day 31 of the month, only in January*/30 0 31 JAN *Every 30 minutes, between 00:00 and 00:59, on day 31 of the month, only in January*/30 9 31 JAN *Every 30 minutes, between 09:00 and 09:59, on day 31 of the month, only in January*/30 12 31 JAN *Every 30 minutes, between 12:00 and 12:59, on day 31 of the month, only in January*/30 * 31 JAN 1-5Every 30 minutes, on day 31 of the month, Monday through Friday, only in January
Where else this cron could be used
The same expression */30 * 31 JAN * works in:
- Standard Unix
crontab(5-field syntax). - AWS EventBridge / Lambda Scheduled (with a 6th field for year, often
*). - Vercel cron jobs (declared in
vercel.json). - Quartz Scheduler and node-cron, robfig/cron and similar libraries.
Examples
- 0 18 * * *Every day at 18:00
- 0 */5 * * *Every 5 hours
- 0 18 * * 1-5Weekdays at 18:00
- 0 0 1 * *Once a month, on the 1st at midnight
Cheatsheet
Full cheatsheet| Field | Req. | Range | Wildcards |
|---|---|---|---|
| minute | yes | 0-59 | , - * / |
| hour | yes | 0-23 | , - * / |
| day of month | yes | 1-31 | , - * / |
| month | yes | 1-12 or JAN-DEC | , - * / |
| day of week | yes | 0-6 or names; some dialects use 0-7 or 1-7 — see Dialects | , - * / |
Frequently asked questions
What does the cron expression `*/30 * 31 JAN *` mean?
every 30 minutes, every hour, on day 31 of the month, only in January.
When does `*/30 * 31 JAN *` run next?
The next runs (UTC): 2027-01-31 00:00; 2027-01-31 00:30; 2027-01-31 01:00; 2027-01-31 01:30; 2027-01-31 02:00.
Is `*/30 * 31 JAN *` a valid cron expression?
Yes - CronTool's parser accepts this expression and the calendar projects future runs successfully.
Run this cron in production
Stop pasting `*/30 * 31 JAN *` into a host you also have to babysit.
WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.
1.9k+ teams · Free forever tier · No credit card