Skip to main content
Version: MVP

Scheduled automations

2 min readReferenceUpdated 2026-05-19

What you'll find here

craik.scheduled_automation and craik.gateway_schedule — enabled gateway definitions backed by persisted cron-like schedules, evaluated one tick at a time, with deduplication and redacted receipts.

Observation only.

Scheduled automations do not run a clock or execute created tasks. They preserve the boundary between schedule observation, task creation, and later task execution under policy.

Enforcement

craik.runtime.scheduled_automations enforces:

Explicit enabled state

Policy envelope checks

Narrow gateway.schedule.execute authority

Schedule tick deduplication

Redacted automation receipts

Persistence

Gateway schedules and scheduled automations are first-class local-store contracts. Use the typed store helpers to round-trip them alongside channel adapter contracts, identity pairings, allowlists, policy envelopes, and gateway receipts:

store.put_gateway_schedule(schedule)
store.put_scheduled_automation(automation)
store.put_gateway_receipt(receipt)

Execution boundary

An automation creates a task only when every condition holds.

  1. The automation is enabled.
  2. Policy allows gateway.schedule.execute.
  3. The tick id has not already created a task.
  4. The schedule expression is valid.

Disabled, policy-denied, and duplicate ticks do not create tasks.

Receipts

Automation receipts record:

Policy envelope id

Automation id

Schedule id

Tick id

Created task id

When one exists.

Receipts use gateway.schedule.execute and stay redacted.

What's next