CronTool
Cron expression editor & debugger

Jenkins cron — syntax, examples & the H modifier

Jenkins cron uses a 5-field syntax plus a unique H “hash” modifier that spreads job firings across the available range — preventing the top-of-the-hour load spike that hits when every Jenkins job uses 0 * * * *. It does NOT support L, W, ? or #.
For last-day-of-month patterns in Jenkins see the dedicated guide.

Examples

  • 018***
    Every day at 18:00
  • 0*/5***
    Every 5 hours
  • 018**1-5
    Weekdays at 18:00
  • 001**
    Once a month

Cheatsheet

FieldRequiredValues RangeWildcardsminuteYes0-59, - * / hourYes0-59, - * / day of monthYes1-31, - * / L W monthYes1-12, - * /day of weekYes0-7, - * / L

Calendar

View future cron matches in a calendar

April 2026

Showing next 1000 cron schedules

Loading...

Jenkins cron field syntax

MIN HOUR DOM MONTH DOW
 H   *   *    *    *

Field      Range
minute     0-59
hour       0-23
day-month  1-31
month      1-12 or JAN-DEC
day-week   0-7 or SUN-SAT (0 and 7 = Sunday)

All standard cron operators (*, ,, -, /) work. Comment lines start with #.

The Jenkins H modifier

Jenkins-specific. H means “a value chosen by hash of the job name” — deterministic per-job but spread across the range. Common patterns:

  • H * * * * — every hour at a stable random minute.
  • H/15 * * * * — every 15 minutes, starting at a hash-determined offset.
  • H 2 * * * — daily at 02:H (some random minute between 02:00 and 02:59).
  • H H * * * — daily at a hash-determined hour and minute.
  • H(0-30) * * * * — random minute in the first half of the hour.
  • H 0 * * 1-5 — every weekday at midnight (just hash on the minute).

H in the day-of-month or month field is valid but rarely useful — those values change rarely so hashing has limited spreading effect.

Pipeline triggers block

pipeline {
  agent any
  triggers {
    cron('H/15 * * * *')
  }
  stages { ... }
}

// Multi-line cron for monthly + nightly:
pipeline {
  agent any
  triggers {
    cron('''
      H 2 * * *           // nightly at 02:H
      H H 1 * *           // monthly on the 1st at hash time
    ''')
  }
}

Freestyle 'Build periodically'

In the Freestyle job UI, paste your cron lines directly into the “Build periodically” box. Jenkins validates them on save and shows the next firing time in the help text below the field. Comments and TZ prefixes are accepted.

Jenkins cron pitfalls

  • SCM polling vs. cron — both can fire a build. Use a when block to avoid duplicate runs.
  • JVM timezone — defaults to the controller JVM's timezone. Set via TZ prefix or JVM property.
  • Concurrency — by default a single job doesn't run concurrently; subsequent triggers queue. Set the build to allow concurrency if you want overlap.
  • No L/W/# — use multi-cron or a runtime date check inside the build.

Frequently asked questions

What does the H modifier do in Jenkins cron?

`H` is Jenkins' hash modifier. It uses a hash of the job name to deterministically pick a value within a range — so a job with `H/15 * * * *` runs every 15 minutes but at a stable, hash-derived minute (e.g., 7, 22, 37, 52) instead of 0/15/30/45. Spreads load across many jobs without coordination.

Why doesn't Jenkins cron support L?

Jenkins uses its own cron parser focused on build-load distribution. It supports the standard 5 fields plus the `H` modifier, but not the `L` / `W` / `?` / `#` modifiers from Quartz / AWS. For last-day-of-month, use the multi-cron pattern or a runtime `when` block.

How do I set the timezone for a Jenkins cron?

Prefix the cron line with `TZ=America/New_York` (Jenkins 2.x supports per-trigger TZ). Or set the JVM timezone via `-Duser.timezone=...` on the controller. By default, Jenkins uses the controller's JVM timezone.

Can I add comments to a Jenkins cron expression?

Yes — lines starting with `#` are treated as comments and ignored. Useful when configuring multi-line cron schedules in a Freestyle job's 'Build periodically' field or a pipeline `triggers` block.

Ready to schedule it?

Point Crontap at any URL. Pick any cron. Done.

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.

Free forever tier ・ No credit card required

Your next schedule
GET/wp-cron.php?doing_wp_cron=1

Schedule

every 5 minutes

Next run

in 23s

Apihustle Logo

This tool is part of the Apihustle suite - a collection of tools to test, improve and get to know your API inside and out.

  • Clobbr logo

    Clobbr

    The app & CLI tool to test API endpoint speed.

    Visit
  • Crontap logo

    Crontap

    Schedule recurring API calls using cron syntax.

    Visit
  • CronTool logo

    CronTool

    Debug multiple cron expressions on a calendar.

    Visit

  • Page AI

    AI Website Generator that designs and writes clean code.

    Visit
  • Shipixen

    Generate customized boilerplates in minutes.

    Visit
  • Page UI

    Landing page UI components for React & Next.js

    Visit