AutoSys date_conditions: Why Your Scheduled Job Never Fires
date_conditions defaults to 0, silently ignoring start_times and days_of_week.
20+ years shipping production infrastructure and CI/CD at scale. Everything here is grounded in real deployments.
- date_conditions: 1 must be set for start_times and days_of_week to take effect; defaults to 0
- start_times lists clock times; days_of_week filters days; both need date_conditions: 1
- run_window bounds job completion window but does not terminate — use term_run_time for a hard kill
- timezone attribute overrides server timezone for multi-region schedules
- start_mins provides sub-hourly scheduling without listing every hour
- The first thing to check when a job doesn't run: date_conditions value
Scheduling an AutoSys job is like programming a coffee maker — you tell it which days to run, what time to start, and whether it should wait for other things to happen first before brewing.
Time-based scheduling in AutoSys is controlled by a small set of attributes that work together. The most important thing to understand up front: date_conditions must be set to 1 for any time-based scheduling to take effect. Without it, start_times and days_of_week are ignored entirely.
Why Your AutoSys Job Never Fires: The Truth About date_conditions
AutoSys date_conditions is a job attribute that, when set to 1, tells the scheduler to evaluate calendar-based rules (start_days, run_calendar, exclude_calendar) before allowing a job to start. Without it, the job ignores all date constraints and runs purely on time or event triggers. This is the single most common reason a scheduled job silently never runs: the attribute defaults to 0.
When date_conditions=1, the job will only fire if the current date matches the defined start_days (e.g., Mon, Wed) or falls within a run_calendar, and is not excluded by an exclude_calendar. The time condition (start_times) is evaluated separately — both must be satisfied. A job with start_times set but date_conditions=0 will run on any day at those times, which is often not what teams intend.
Use date_conditions whenever a job must run on specific days or follow a business calendar (e.g., month-end, weekdays only). In production, forgetting this flag causes jobs to run on weekends or holidays, or worse, never run at all because the operator assumed the calendar alone was sufficient. Always verify date_conditions is 1 when you see a job with start_days or run_calendar defined.
The date_conditions gate
date_conditions is a binary flag. When it's 1, AutoSys respects the time-based scheduling attributes (start_times, days_of_week, run_calendar). When it's 0 (the default), the job only runs when explicitly triggered — either manually or by a condition from another job.
start_times and days_of_week
start_times specifies when to run, days_of_week specifies which days. You can list multiple start times separated by commas. days_of_week accepts values like all, mon-fri, or specific days. Both require date_conditions: 1.
run_window — bounding when a job can run
run_window defines a time range within which the job must complete. If the job is still running when the window closes, AutoSys generates an alarm. Some configurations also terminate the job at the window end, but only if term_run_time is set.
Timezone handling
By default, AutoSys uses the server's timezone. For jobs that must run at a specific local time regardless of server timezone (common in multinational companies), set the timezone attribute explicitly.
Combining time conditions with job dependencies
You can mix date_conditions with condition dependencies. The job starts when both the time condition is met AND the dependency is satisfied. This is common for batch pipelines that must run at a specific time only if upstream succeeded.
Common time scheduling failures and debugging
Even with correct settings, jobs may fail due to server time drift, unexpected daylight saving transitions, or missing calendars. Use autorep -q to verify job definition and autorep -d to see why a job hasn't started. Always check system time with the date command on the AutoSys server.
The 'everyday' Trap: Why days_of_week and month_days Mutually Exclude Each Other
You think you're being clever. You set days_of_week: "mon,tue,wed,thu,fri" and month_days: "1,15" expecting the job to run only on weekdays that fall on the 1st or 15th. AutoSys laughs. Then it silently ignores the job entirely.
Here's the mechanical truth: days_of_week and month_days form a logical OR when both are present, not AND. AutoSys checks: is today a Monday? Yes → run. Is today the 1st? Yes → run. If neither is true, the job sits dead. You never built a compound gate — you built two independent calendars.
To get the intersection — run only on weekdays that are the 1st or 15th — you need to use a custom calendar or a run_calendar. Don't rely on the fields working together like some SQL WHERE clause. They don't. They're independent dispatch lists. Treat them that way or your job sleeps forever.
run_window Bleeding: How a Missed Window Starves Downstream Jobs
A run_window looks clean on paper: "08:00-10:00" means the job must start within that two-hour block. But here's the part they don't put in the docs: if the job misses that window — dependencies not met in time, queue depth, or a previous run overrunning — the job dies for the entire day. There is no fallover to the next window period. It's dead until tomorrow's window.
This creates a starvation cascade. Your downstream jobs sit on condition waiting for the upstream that will never fire. They're not smart enough to skip. They just wait. Forever. Autosys doesn't send an alert for a job that never ran — it only alerts on FAILURE. A job that never started is treated as 'not yet scheduled.'
The fix: use run_window as a health boundary, not a hard gate. Pair it with a max_duration_alarm and a separate monitor that checks 'has job X started today?' If the window closes without a start, page someone. Otherwise you'll find out during the team standup when someone asks 'is the data fresh?' and you realise it's 48 hours stale.
Job Silent No-Run: date_conditions Left at Default
- date_conditions: 1 is not optional — always explicitly set it.
- When a job doesn't run, autorep -q is your first diagnostic command.
- Don't assume time scheduling behaves like cron; AutoSys separates conditions from time.
autorep -q jobname | grep -i date_conditionsautorep -d jobnameKey takeaways
Common mistakes to avoid
5 patternsForgetting date_conditions: 1
Setting start_times on child jobs inside a BOX
Not setting timezone when a job must run at local time across timezone boundaries
Confusing run_window with start_times
Assuming run_window terminates the job automatically
Interview Questions on This Topic
What does date_conditions do in AutoSys?
Frequently Asked Questions
JIL syntax, sendevent, autorep, box jobs, file watchers, scheduling, HA, security, cloud workload automation, and 22 interview questions — the definitive AutoSys reference for production engineers.
20+ years shipping production infrastructure and CI/CD at scale. Everything here is grounded in real deployments.
That's AutoSys. Mark it forged?
3 min read · try the examples if you haven't