Cron Expressions
Use this topic as a reference for building and validating Quartz-style cron expressions supported by Reltio for scheduling recurring jobs.
Cron expression structure
A cron expression consists of 6 or 7 space-separated fields. Each field represents a time unit and defines the schedule pattern. Reltio uses the Quartz Scheduler format, which differs from traditional UNIX cron by including a seconds field and supporting an optional year field.
┌───────────── second (0–59)
│ ┌───────────── minute (0–59)
│ │ ┌───────────── hour (0–23)
│ │ │ ┌───────────── day of month (1–31)
│ │ │ │ ┌───────────── month (1–12 or JAN–DEC)
│ │ │ │ │ ┌───────────── day of week (1–7 or SUN–SAT, where 1 = Sunday)
│ │ │ │ │ │ ┌───────────── year (optional, 1970–2199)
│ │ │ │ │ │ │
* * * * * * [*]
Field Reference
Each cron expression is composed of multiple fields, where each field represents a specific unit of time such as seconds, minutes, hours, days, etc. The combination of all fields defines when and how often a job runs. The table below lists each field, the valid ranges of values it can take, and the special characters you can use to customize scheduling patterns.
| Field | Allowed values | Special characters |
|---|---|---|
| Seconds | 0–59 | , - / |
| Minutes | 0–59 | , - / |
| Hours | 0–23 | , - / |
| Day of month | 1–31 | , - ? / L W LW |
| Month | 1–12 or JAN–DEC | , - / |
| Day of week | 1–7 or SUN–SAT (1 = Sunday) | , - ? / L # |
| Year(optional) | 1970–2199 or empty | , - / |
Special Characters
Cron expressions support special characters that provide flexibility beyond simple numeric values. These characters let you define ranges, increments, lists, and special conditions (like the last day of a month or the nearest weekday). They are what make cron expressions powerful, allowing complex schedules to be expressed compactly.
The table below explains the purpose of each special character and how it affects the scheduling logic:
| Symbol | Meaning |
|---|---|
* | Every possible value (e.g., * in minutes = every minute) |
? | No specific value (used only in day-of-month or day-of-week) |
- | Range (e.g., 10-12 = 10, 11, 12) |
, | List (e.g., MON,WED,FRI) |
/ | Step (e.g., 0/15 in minutes = every 15 min starting at 0) |
L | Last (e.g., L in day-of-month = last day of the month) |
W | Nearest weekday (e.g., 15W = weekday near the 15th) |
# | Nth day of week (e.g., 6#3 = 3rd Friday of the month) |
Important rules for writing valid Quartz cron expressions
- Use
?in either the day-of-month or day-of-week field to avoid ambiguity. - Do not use
0for day-of-week. Use1for Sunday through7for Saturday. - The year field is optional and supports a range from
1970to2199.
Example
The following example shows how to construct, validate, and execute a cron expression for the use case: every 15 minutes:
0 */15 * * * ?Current time = Wed Aug 13 15:53:45 WEST 2025
Enter values for cron expression:
Seconds (0-59 or *): 0
Minutes (0-59 or *): */15
Hours (0-23 or *): *
Day of a month (1-31, * or ?): *
Month (1-12 or JAN-DEC, *): *
Day of a week (1-7 or SUN-SAT, * or ?): ?
Year (optional, 1970-2199 or *):
Built expression : 0 */15 * * * ? *
✅ Expression is valid
Child job will start at: Wed Aug 13 16:00:00 WEST 2025
Internal, seconds: 900
Timing of child job 1 = Wed Aug 13 16:15:00 WEST 2025
Timing of child job 2 = Wed Aug 13 16:30:00 WEST 2025
Timing of child job 3 = Wed Aug 13 16:45:00 WEST 2025
Timing of child job 4 = Wed Aug 13 17:00:00 WEST 2025
Timing of child job 5 = Wed Aug 13 17:15:00 WEST 2025
All other common examples of cron expression are summarized below in tabular format for quick reference.
| Use Case | Cron Expression | Description |
|---|---|---|
| Every Hour | 0 0 * * * ? | Runs at the top of every hour |
| Every Weekday at 9 AM | 0 0 9 ? * MON-FRI | Runs Monday through Friday at 9:00 AM |
| First Day of Every Month at 1 AM | 0 0 1 1 * ? | Runs on the 1st of every month at 1:00 AM |
| Every Minute on Jan 1st |
0 * * 1 1 ? | Runs every minute on January 1st |
| Every Minute on Sundays in December | 0 * * * 12 SUN | Runs every minute on Sundays in December |
| One-Time Execution (July 4, 2026, 10:15 AM) | 0 15 10 4 7 ? 2026 | Executes once on July 4, 2026, at 10:15 AM |