# Scheduling a rule

> The two scheduling modes, the ten check intervals, the weekly timetable grid, and how the dispatcher picks up due rules.

Source: https://adops.id/docs/scheduling-a-rule/
Last updated: 2026-08-20
Publisher: AdOps (https://adops.id) — an independent product, not affiliated with Meta Platforms, Inc.

---

## 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.

```json
{
  "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.
