Paste a 5-field or 6-field cron expression, choose a timezone and see the next occurrences, field breakdown and controlled parser diagnostics. The evaluator runs locally and never schedules a job.
Cron syntax is compact enough to hide mistakes. This playground expands minutes, hours, day-of-month, month, day-of-week and optional seconds into a readable review surface before a schedule reaches CI, Kubernetes, Cloud Scheduler or a server crontab.
The page does not run jobs, call a backend, fetch project config, store schedules, write URL state or send custom analytics payloads with your expression, timezone, date or occurrence list.
Start from a preset, edit the expression and compare field semantics with upcoming local and UTC run times.
Every 15 minutes during a weekday working window in Europe/Warsaw.
Local timezone schedules can skip or repeat wall-clock times during daylight saving transitions.
Europe/Warsaw0Fixed: runs only when the field equals this value.
*/15Step: repeats through the field at the configured interval.
step9-17Range: accepts values between the lower and upper bound.
range*Wildcard: accepts every value in this field.
wildcard*Wildcard: accepts every value in this field.
wildcard1-5Range: accepts values between the lower and upper bound.
range2026-06-08T11:15:00 8 Jun 2026, 09:15:00 2026-06-08T09:15:00.000Z2026-06-08T11:30:00 8 Jun 2026, 09:30:00 2026-06-08T09:30:00.000Z2026-06-08T11:45:00 8 Jun 2026, 09:45:00 2026-06-08T09:45:00.000Z2026-06-08T12:00:00 8 Jun 2026, 10:00:00 2026-06-08T10:00:00.000Z2026-06-08T12:15:00 8 Jun 2026, 10:15:00 2026-06-08T10:15:00.000Z2026-06-08T12:30:00 8 Jun 2026, 10:30:00 2026-06-08T10:30:00.000Z2026-06-08T12:45:00 8 Jun 2026, 10:45:00 2026-06-08T10:45:00.000Z2026-06-08T13:00:00 8 Jun 2026, 11:00:00 2026-06-08T11:00:00.000Zimport { CronExpressionParser } from 'cron-parser/dist/CronExpressionParser';
const expression = "*/15 9-17 * * 1-5";
const interval = CronExpressionParser.parse(expression, {
currentDate: "2026-06-08T09:00:00.000Z",
tz: "Europe/Warsaw",
strict: false,
});
const nextRuns = interval.take(8).map((run) => run.toDate().toISOString());
console.log(nextRuns);Classic cron uses minute, hour, day-of-month, month and day-of-week. Some JavaScript schedulers also support a leading seconds field. This page makes that difference visible instead of guessing.
Unix crontab, node libraries, Kubernetes, GitHub Actions and Cloud Scheduler can differ on seconds, aliases, macros, timezones and special characters. Treat this as parser evidence, then verify the target runtime.
A daily local-time schedule can shift around DST transitions. Compare local and UTC columns before promising exact operational timing.
Use these routes when schedule review connects to dates, release ranges or environment configuration.