# Schedule an OpenClaw nightly note check and verify its first due run

> OpenClaw note: verify the manual run, first due run and delivery.

By BIGCHANGE.AI Editorial

Published: 2026-10-26T03:59:38.498Z
Updated: 2026-10-26T03:59:38.498Z
Canonical: https://bigchange.ai/blog/openclaw-nightly-readonly-note-first-run-guide

![A seated person holds a blank phone beside an unmarked sheet, with a clock on the wall.](https://bigchange.ai/api/media/file/openclaw-nightly-note-first-run-hero-v1.png)
AI-generated conceptual illustration by BIG CHANGE.

An overnight OpenClaw job can summarize one owner-approved local note and send the result to an existing Telegram DM. The useful checkpoint is the first scheduled run: a successful manual test alone does not establish that the nightly schedule, delivery route or account budget works. This guide describes a documented setup. BIG CHANGE did not access an OpenClaw Gateway, OpenAI account, Telegram DM or reader file, and did not run the job.

The reader needs authority to administer an existing Gateway and an OpenAI API project, a working owner DM, and a short note approved for this agent to read. The outcome is one checked manual run and one checked first due run, with their IDs, source revision, delivery and usage recorded privately.

## The big change

- **What changed:** The owner records one note revision and checks the first due result.
- **Why it matters:** Read-only agent permissions, a pinned model and project controls set the boundaries for an unattended task.
- **What to watch:** Confirm the source revision, Telegram delivery and account usage against saved job and run IDs before trusting the schedule.

## 1. Set the note and account boundary

Put only the approved note in a dedicated agent workspace as `project-note.md`. Record its host path, owner, date, expected points and file hash. Keep credentials and unrelated files out of that workspace. The scheduled model can check a date written in the note; the owner must compare the actual file hash with the approved revision after each run.

In the [OpenAI API project settings](https://help.openai.com/en/articles/9186755-managing-projects-in-the-api-platform), select the project and inspect **Limits**: allowed model, rate controls, monthly spend limit, alerts and whether **Enforce a hard limit** is enabled. Check the organization's limits and any shared model limit in the [rate-limit guide](https://developers.openai.com/api/docs/guides/rate-limits). Then inspect project **Usage** for the relevant UTC period. An alert leaves requests running; hard-limit enforcement can lag behind recorded spend. Leave room for other activity, manual testing and possible retries. This recipe makes no fixed request or savings promise.

Provider and model charges, plus any Gateway hosting cost, depend on the reader's setup. Check [current model prices](https://developers.openai.com/api/docs/pricing) and account limits; this job guarantees no fixed saving or charge cap.

If another process writes the note, inspect its completed output before scheduling this reader. The clock and stagger window do not check a predecessor. Choose a due time after the source is normally ready, and keep the owner approval step.

## 2. Check the installed Gateway and restrict the agent

Run these read-only checks on the owner's host. Confirm the installed version supports every later flag, the intended `openai/…` model resolves to the expected project, the Gateway is available, the owner DM already works and the operator has `operator.admin` authority.

```sh
openclaw --version
openclaw automations --help
openclaw models list
openclaw agents list --json
openclaw automations list --all --query "Owner note nightly check" --json
```

Create a dedicated agent only if it is absent. The workspace path below is a reader-supplied absolute host path containing the approved note.

```sh
openclaw agents add nightly-note --workspace /absolute/owned/nightly-note-workspace --non-interactive
```

Merge the following entry under the existing `agents.entries` configuration; retain other agents. This is a JSON5 fragment, not a complete configuration file. The [OpenClaw permission guide](https://docs.openclaw.ai/gateway/security/tool-permissions) documents the read-only sandbox pattern.

```text
"nightly-note": {
  workspace: "/absolute/owned/nightly-note-workspace",
  sandbox: { mode: "all", scope: "agent", workspaceAccess: "ro" },
  tools: {
    allow: ["read"],
    deny: ["write", "edit", "apply_patch", "exec", "process", "browser", "cron", "gateway", "message", "sessions_send", "sessions_spawn"]
  }
}
```

After the Gateway applies the configuration, inspect the effective agent, inherited tools, skills, hooks and sandbox. Confirm the note is readable at `/agent/project-note.md` inside the sandbox, with no extra host or credential mounts. Stop if this installed build cannot establish the restriction. Scheduler delivery to the owner is a separate effect; denying the agent's `message` tool does not verify the Telegram destination.

## 3. Save one UTC job and inspect it

The example uses 02:17 UTC and a ten-minute stagger window. Replace every uppercase value with a verified reader value. The exact model ID must be allowed in the selected OpenAI project. Keep the approved date in the prompt; the hash comparison stays with the owner. Inspect the existing job list again before creating so a lost response does not produce a duplicate.

```sh
NOTE_PATH='/agent/project-note.md'
APPROVED_SOURCE_DATE='YYYY-MM-DD'
MODEL_ID='openai/READER_VERIFIED_MODEL_ID'
OWNER_CHAT_ID='READER_VERIFIED_NUMERIC_TELEGRAM_DM_ID'
PROMPT="Read only ${NOTE_PATH}. Expected owner-approved source date: ${APPROVED_SOURCE_DATE}. If missing, inaccessible, undated, older, or outside approved scope, return INCOMPLETE and explain. Otherwise report at most three current decisions with source line, path and date. Do not edit, command, message or trigger jobs. Owner compares source revision afterward."
openclaw automations create "17 2 * * *" "$PROMPT" --name "Owner note nightly check" --agent nightly-note --session isolated --model "$MODEL_ID" --fallbacks "" --tz Etc/UTC --stagger 10m --timeout-seconds 300 --announce --channel telegram --to "$OWNER_CHAT_ID"
```

Save the returned job ID. Inspect it with `openclaw automations get <job-id> --json` and `openclaw automations show <job-id>`. Check every saved flag, next due time and DM route. [Empty fallbacks](https://docs.openclaw.ai/cli/cron) keep routing strict. If the installed help rejects an option, stop and resolve its syntax before proceeding.

Check the effective failure-alert policy. With a resolved route, default alerts follow two failures and a one-hour cooldown; opt-outs and best-effort delivery can change this. Verify the saved route and policy.

## 4. Accept the manual run and first scheduled run

With account headroom and no pending run, make one manual test.

```sh
openclaw automations run <job-id> --wait --wait-timeout 10m
openclaw automations runs <job-id> --run-id <run-id>
```

Compare the answer with the note's date, lines and approved hash. Check the run's completion and delivery status, the owner DM's actual message and the OpenAI project's usage for that period. Record the job ID, run ID, UTC time, model, source hash, result, delivery and usage in an owner-private log. A model answer cannot prove its own source hash or the absence of other account traffic.

At the first actual UTC due window, inspect the same job's history and the DM again. Match a new scheduled run ID to its terminal status, answer, recipient and account usage. Record an error, skip or missing delivery as such; do not turn the manual result into a claim that the schedule passed. Errors can trigger backoff and extra model calls.

```sh
openclaw automations runs <job-id> --limit 50 --json
```

If the note changed, a run is missing or uncertain, delivery fails, or usage approaches the owner's buffer, disable the job and read back its disabled state before another due time:

```sh
openclaw automations disable <job-id>
openclaw automations get <job-id> --json
```

Reconcile job and run IDs, delivery history, source hash, effective permissions, model route and provider usage before a deliberate retry or re-enable. A 429 can reflect rate pressure or a spend/credit boundary; inspect the account's actual error and limits. Gateway interruption can leave a run receipt that needs reconciliation. Do not create a replacement job or force another run merely because one response was lost.

For a different automation problem, [the Claude Code repository review guide](https://bigchange.ai/blog/claude-code-headless-repository-review-cronie-guide) uses Linux Cronie and a pinned repository review. This guide uses OpenClaw's native scheduler for one local owner note.

## Sources

- [OpenClaw: Automations CLI](https://docs.openclaw.ai/cli/cron) — CLI commands and alerts; checked 26 October 2026.
- [OpenClaw: Tool and agent permissions](https://docs.openclaw.ai/gateway/security/tool-permissions) — Official current page checked 26 October 2026; agents.entries and read-only sandbox/tool pattern. Effective inherited settings still need local verification.
- [OpenClaw: Automation schedules](https://docs.openclaw.ai/automation/cron-jobs/schedules) — Official current page checked 26 October 2026; UTC timezone and stagger semantics; a schedule does not verify a producer dependency.
- [OpenClaw: How automations work](https://docs.openclaw.ai/automation/cron-jobs/how-it-works) — Official source packet checked 25 October 2026; Gateway and persistent run-state behavior, including interruption.
- [OpenClaw: Automation payloads](https://docs.openclaw.ai/automation/cron-jobs/payloads) — Official source packet checked 25 October 2026; isolated agent-turn authority and payload distinction.
- [OpenClaw: Agents CLI](https://docs.openclaw.ai/cli/agents) — Official source packet checked 25 October 2026; named agent creation and list syntax.
- [OpenClaw: Models CLI](https://docs.openclaw.ai/cli/models) — Official source packet checked 25 October 2026; inventory check before pinning a model.
- [OpenAI: API rate limits](https://developers.openai.com/api/docs/guides/rate-limits) — Official current page checked 26 October 2026; organization/project/model limits, shared limits, 429 and spend controls.
- [OpenAI: API pricing](https://developers.openai.com/api/docs/pricing) — Current model-specific API prices; checked 26 October 2026. Reader must use the selected model's current price.
- [OpenAI: Managing API projects](https://help.openai.com/en/articles/9186755-managing-projects-in-the-api-platform) — Official Help Center checked 26 October 2026; project Limits, spend alerts versus hard enforcement and usage visibility.
- [OpenAI: Reviewing API usage and costs](https://help.openai.com/en/articles/10478918-reviewing-api-usage-and-costs) — Official Help Center captured in approved source packet 25 October 2026; project and UTC period usage review.
