Regex and cron

Cron Expression Examples: 31 Common Schedules

31 everyday schedules, each with the exact expression, live next run times in your time zone and snippets for crontab, GitHub Actions, Kubernetes and more.

  • Free foreverNo trial, no paywall, no usage limits.
  • No sign-upOpen the page and start. We never ask for an email to use a tool.
  • PrivateEverything runs in your browser. Your input is never uploaded or stored on our servers.
  • Works offlineOnce the page has loaded, the tool keeps working without a connection.

31 ready-to-copy schedules

Every few seconds or minutes

Health checks, queues and near-real-time syncs.

Hourly

Reports, cache refreshes and business-hours jobs.

Daily

Backups, digests and nightly batch work.

Weekly and weekdays

Workday jobs, weekend maintenance and weekly reports.

Monthly, quarterly and yearly

Billing, invoices, archiving and annual resets.

Need scheduled jobs, queues and monitoring that never miss a run? Talk to our team

Quick answer

A cron expression has five fields (minute, hour, day of month, month and day of week), so */5 * * * * runs every 5 minutes, 0 * * * * every hour, 0 0 * * * daily at midnight, 0 9 * * 1-5 at 09:00 on weekdays and 0 0 1 * * on the first of each month. Playxoft's free cron schedule library covers 31 common schedules, each with live next run times and copy-ready platform snippets.

  • 31 ready-made schedules
  • Search and filter
  • Live next runs
  • Platform snippets

How to use the schedule library

  1. 1Search for a schedule (try weekday, hour or */5) or filter by frequency.
  2. 2Open a schedule to copy its expression and see the next runs in your time zone.
  3. 3Copy the snippet for your platform, or click Customize to adjust it in the generator.

What are the most common cron expressions?

Every schedule in this library, with its expression. Each links to a page with a field-by-field breakdown, live next runs and platform snippets.

ScheduleCron expression
Every 30 seconds*/30 * * * * *
Every minute* * * * *
Every 2 minutes*/2 * * * *
Every 5 minutes*/5 * * * *
Every 10 minutes*/10 * * * *
Every 15 minutes*/15 * * * *
Every 30 minutes*/30 * * * *
Every hour0 * * * *
Every 2 hours0 */2 * * *
Every 3 hours0 */3 * * *
Every 4 hours0 */4 * * *
Every 6 hours0 */6 * * *
Every 12 hours0 */12 * * *
Business hours (every hour)0 9-17 * * 1-5
Twice a day0 0,12 * * *
Every day at midnight0 0 * * *
Every day at noon0 12 * * *
Every day at 9am0 9 * * *
Every day at 2am0 2 * * *
Every weekday0 0 * * 1-5
Every weekday at 9am0 9 * * 1-5
Every weekend0 0 * * 6,0
Every Monday0 0 * * 1
Every Sunday0 0 * * 0
Every Friday at 5pm0 17 * * 5
Every week0 0 * * 0
Every month0 0 1 * *
First Monday of the month0 0 1-7 * *
Last day of the month0 0 28-31 * *
Every quarter0 0 1 1,4,7,10 *
Every year0 0 1 1 *

How do I read a cron expression?

Read the five fields left to right: minute, hour, day of month, month, day of week. A job runs when the current time matches every field.

*/15  9-17  *  *  1-5
 │     │    │  │   └─ Monday to Friday
 │     │    │  └───── every month
 │     │    └──────── every day of the month
 │     └───────────── hours 9 through 17
 └─────────────────── every 15th minute

* means any value, , separates a list, - is an inclusive range and / is a step. Hours use the 24-hour clock, and Sunday is both 0 and 7 in standard cron (Cloudflare, Quartz and AWS count Sunday as 1). For anything not listed here, the cron expression generator builds and explains custom schedules.

Which schedules can't standard cron express?

Cron matches calendar fields; it doesn't count intervals. A few common requests need a workaround:

  • Last day of the month: there is no "last" value. Run on days 28–31 and check the date (last day of the month), or use L on Cloudflare, AWS or Quartz.
  • The first Monday of the month: 0 0 1-7 * 1 runs on days 1–7 *and* every Monday, because the day fields combine with OR. Run on days 1–7 and check the weekday (first Monday of the month).
  • More than once a minute: the smallest unit is one minute. See every 30 seconds for the alternatives.
  • Every 90 minutes or every 10 days: steps restart at each hour, day or month boundary. Use two lines (0 0-21/3 * * * plus 30 1-22/3 * * * for 90 minutes) or a scheduler that supports fixed rates.

How do I choose a good time for a recurring job?

A few habits prevent most scheduling surprises:

  1. Stay off :00. Many jobs worldwide start on the hour. A minute like 7 or 23 spreads load on shared APIs and databases.
  2. Avoid 01:00–04:00 local time if the server follows daylight saving time; the US and Europe skip or repeat an hour in that window once a year each.
  3. Prefer UTC on servers. Cloudflare and Vercel only run in UTC anyway, and UTC never changes.
  4. Prevent overlaps with flock or Kubernetes concurrencyPolicy: Forbid when a run can take longer than the interval.
  5. Monitor the job, not just the server. Have each run report success, and alert when a report is missing.

Frequently asked questions

*/5 * * * * runs at minutes 0, 5, 10 and so on through 55 of every hour, which is 288 runs a day.
Put the minute first and the hour second, then three asterisks. For example, 30 6 * * * runs every day at 06:30, and 0 18 * * * runs at 18:00 (6 PM).
An asterisk means every allowed value for that field: every minute, every hour, every day and so on. * * * * * therefore runs once a minute.
Both 0 and 7 mean Sunday in standard cron, and you can also write SUN. Monday is 1 and Saturday is 6. Cloudflare Workers, Quartz and AWS EventBridge are different: they count Sunday as 1.
It depends on the scheduler. Linux crontab uses the server's time zone, Kubernetes and GitHub Actions can set a time zone per schedule, and Cloudflare Workers and Vercel always use UTC.

Last updated by the Playxoft engineering team.

From the engineers who built this tool

Need scheduled jobs that never miss a run?

Cron is the easy part. Retries, overlapping runs, time zones, queues and alerts when a job silently stops are where schedules break. We build background job systems you can trust, and we will review your setup for free.

More free tools

See all tools

Regex Tester

Test regex live with highlighted matches, plain-English explanations and code export.

Open tool

SQL Formatter

Beautify or minify SQL in 12 dialects, with keyword case, indent and line:column errors.

Open tool

cURL to Python Converter

New

Convert cURL commands into Python requests or httpx code with params, json, files and auth.

Open tool

cURL to Fetch Converter

New

Turn any cURL command into JavaScript fetch() code with headers, JSON, forms and auth.

Open tool

cURL to Axios Converter

New

Convert cURL commands into an Axios request config with params, data, auth and timeouts.

Open tool

SQL to Prisma Converter

Turn SQL DDL into a schema.prisma with native types, relations and enums.

Open tool