Rules
Scheduling a rule
The two scheduling modes, the ten check intervals, the weekly timetable grid, and how the dispatcher picks up due rules. This page of the AdOps documentation sits in the Rules section, last updated 20 August 2026. AdOps runs rules — conditions plus actions — against your Meta Ads campaigns on the schedule you set.
Key facts
- Scheduling modes
- 2 fixed check interval, or a weekly day-and-hour timetable
- Check interval options
- 10 15 minutes to 4320 minutes (72 hours)
- Timetable grid size
- 24 hour rows x 7 days plus a Week column that toggles an hour across all seven days
- Dispatcher tick
- every 10 seconds it selects ACTIVE rules whose next execution time has passed
- Fallback interval
- 60 minutes applied when a rule has no usable check interval
The Schedule Configuration card offers exactly two modes. Run every <interval> evaluates the rule on a fixed cycle from 15 minutes to 72 hours. Run on spesific days and time evaluates it only in the hours you click on a weekly grid. An optional date range time-boxes the whole rule, and a saved rule reports its Next Scheduled Execution.
Which check intervals are available?
Ten, and they are fixed choices rather than a free-text field:
| Stored value (minutes) | Label |
|---|---|
| 15 | 15 minutes |
| 30 | 30 minutes |
| 60 | 1 hour |
| 120 | 2 hours |
| 180 | 3 hours |
| 360 | 6 hours |
| 720 | 12 hours |
| 1440 | 24 hours |
| 2160 | 36 hours |
| 4320 | 72 hours |
If a rule ends up with no usable interval, AdOps falls back to 60 minutes.
How does the timetable work?
Choosing Run on spesific days and time replaces the interval dropdown with a grid: 24 hour rows across eight columns headed Week, Su, Mo, Tu, We, Th, Fr, Sa. Click a cell to activate that hour on that day. Click a cell in the Week column to toggle that hour across all seven days at once.
When AdOps needs the next execution time it looks for the next active slot later today, and if there is none it scans forward day by day, wrapping past Saturday into Sunday, up to a week ahead. An empty timetable gives the engine nothing to schedule, so activate at least one cell.
Adding a date range
Tick Run within a date range to reveal a date-range picker. It defaults to today through today plus 7 days and refuses a start date before today. Rules outside their window are skipped by the dispatcher, which makes this the right control for a sale, a launch or a seasonal push that should stop automating on its own.
How the dispatcher picks up your rule
AdOps runs a dispatch sweep every 10 seconds. Each sweep selects every rule whose status is ACTIVE and whose next execution time has already passed, and whose date window — if it has one — is currently open. For each due rule it pulls the matching campaigns from the Meta Graph API, following pagination 1000 entities at a time, and enqueues one job per ad account onto a Redis-backed queue. A worker then picks the job up, reads Insights, evaluates conditions and executes actions.
Two consequences worth internalising:
- A sweep is never re-entered by the next tick, so a slow sweep delays the following one instead of running twice.
- Due rules are processed one after another, and an ad-account fetch can add up to three seconds of retry backoff before it is skipped. Your interval is the earliest a rule can run again, not a guaranteed cadence.
Schedule versus action frequency
They are different controls and they compose.
{
"schedule_action": "interval",
"check_interval": "15",
"tasks": [
{ "action": "increase_budget_campaign", "action_frequency": "2_hours" }
]
}
That rule is evaluated every 15 minutes, so conditions are checked with fresh numbers 96 times a day, but any single campaign is scaled at most once every 2 hours. The frequency is what stops a fast schedule from thrashing a campaign.
Choosing a cadence
Start slower than feels right. A 1-hour interval on a pause rule gives you twenty-four decision points a day and a readable log; a 15-minute interval on a budget rule with no action frequency gives you ninety-six chances to compound a mistake. Tighten the interval once the log has shown you the rule behaves.
Sample data Questions about this page
If I set a 15-minute interval, does the rule fire exactly every 15 minutes?
Treat the interval as a floor, not a promise. The dispatcher checks for due work every 10 seconds and a sweep processes due rules one after another, so a run can start later than its nominal due time when many rules or many campaigns are in flight.
What is the difference between a schedule and an action frequency?
The schedule decides how often the whole rule is evaluated. An action frequency is a per-task cooldown that decides how often that one task may fire on the same campaign. A rule can be evaluated every 15 minutes while a task inside it scales a campaign at most once every 2 hours.
Should I use the timetable or a time condition for dayparting?
Use the timetable when the rule should not even be evaluated outside a window. Use Time greater than and Time less than conditions when the rule should run continuously but only act inside a window, which also records a Fail on the time condition so the log shows why nothing happened.
Can a rule stop on its own?
Yes. Tick "Run within a date range" and pick a start and end date. The picker defaults to today through today plus 7 days and will not accept a start date in the past.