Scheduling and Automation
Cron-based automation with APScheduler, reusable skills and playbooks, and human-in-the-loop approval gates for process workflows.
Scheduling
Schedule recurring tasks with timezone support, execution history, and manual triggers. Each schedule pairs a cron expression with a message or task sent to an agent at the specified times.

Creating Schedules
Open the agent detail page and go to the scheduling section.
Click Create Schedule.
Configure: name, cron expression (e.g., 0 9 * * 1-5 for weekdays at 9 AM), message/task, timezone, and description.
Optionally select a model override (Opus, Sonnet, Haiku, or custom).
Enable or disable individual schedules with the toggle.
View execution history with status, duration, and cost.
Click Run Now to trigger a schedule immediately.

Execution Flow
Scheduler fires and sends a POST to /api/internal/execute-task with async_mode=True.
Backend spawns a background task and returns immediately.
Scheduler polls the database every 10 seconds until execution completes.
Execution record is updated with response, cost, and duration.
Schedule API
| Endpoint | Method | Description |
|---|---|---|
| /api/agents/{name}/schedules | GET | List schedules |
| /api/agents/{name}/schedules | POST | Create schedule |
| /api/agents/{name}/schedules/{id} | GET/PUT/DELETE | CRUD operations |
| /api/agents/{name}/schedules/{id}/enable | POST | Enable schedule |
| /api/agents/{name}/schedules/{id}/trigger | POST | Manual trigger |
| /api/agents/{name}/schedules/{id}/executions | GET | Execution history |
Skills and Playbooks
Platform-managed skills that can be assigned to agents and invoked from the UI via the Playbooks tab or chat autocomplete.
Key Concepts
SKILL.md) stored in the platform's skills library./ in the Chat tab to see available playbooks with ghost text showing command syntax.Managing Skills (Admin)
Go to Settings or the Skills admin page.
Sync the skills library from GitHub.
Create, edit, or delete skills (full CRUD). View skill details and usage.
Assigning Skills (Owner)
Open the agent detail page, go to the skills/playbooks section, and assign skills from the library. Skills are injected on the next agent start.
Running Playbooks (User)
Open agent detail, click the Playbooks tab, and click Run on a playbook. Or type / in the Chat tab to autocomplete a playbook command.
Skill Injection on Agent Start
When an agent starts, all assigned skills are written to the agent's .claude/commands/ directory. The agent can then use them as slash commands during execution.

Approvals
Human-in-the-loop approval gates for process engine workflows. Processes pause at approval steps and wait for human decisions before continuing.
A process execution reaches a human_approval step. The step pauses the process (status: PAUSED).
An approval request appears in the Approvals inbox (accessible from the navigation bar).
The approver sees the process name, step description, context, and who requested it.
The approver can Approve or Reject, with an optional comment.
On approval, the process continues. On rejection, the execution is cancelled or follows the rejection path. Approvals can have configurable timeouts.
A approval_required WebSocket event is fired when a process needs human approval.
Approval API
| Endpoint | Method | Description |
|---|---|---|
| /api/approvals | GET | List pending approvals |
| /api/approvals/{id} | GET | Get approval details |
| /api/approvals/{id}/decide | POST | Submit decision (approve/reject) |
Limitations
human_approval step types defined in the process YAML.