Schedule Task — One-Off Scheduled Actions
Create and manage one-off scheduled tasks that run at a specific date/time. Unlike routines (which repeat on cron), scheduled tasks execute once and are done.
When to Use
- User wants to schedule something for a specific time: "posta no LinkedIn sexta 10h"
- User wants to run a report later: "roda o financial pulse amanha as 8h"
- User says "agenda pra", "schedule this for", "run at", "agendar tarefa"
- User wants to list or manage pending tasks: "quais tarefas agendadas?"
API Reference
The dashboard backend exposes these endpoints:
| Method | Endpoint | Action |
|---|---|---|
| GET | /api/tasks |
List tasks (query: ?status=pending|running|completed|failed) |
| POST | /api/tasks |
Create a new task |
| GET | /api/tasks/<id> |
Get task details |
| PUT | /api/tasks/<id> |
Edit a pending task |
| DELETE | /api/tasks/<id> |
Cancel (pending) or delete (completed/failed) |
| POST | /api/tasks/<id>/run |
Execute immediately |
Task Types
| Type | Payload | When to Use |
|---|---|---|
skill |
Skill name + args (e.g. social-post-writer LinkedIn post about X) |
Running a Claude skill |
prompt |
Free-form prompt text | Running a raw Claude prompt |
script |
Script path relative to ADWs/routines/ (e.g. custom/financial_pulse.py) |
Running an existing routine script |
Agents
| Agent ID | Short Name |
|---|---|
clawdia-assistant |
@clawdia |
flux-financeiro |
@flux |
atlas-project |
@atlas |
kai-personal-assistant |
@kai |
pulse-community |
@pulse |
sage-strategy |
@sage |
pixel-social-media |
@pixel |
nex-comercial |
@nex |
mentor-courses |
@mentor |
Workflow
Creating a Task
Understand the request — extract what, when, and how:
- What: the action to perform
- When: date + time (convert relative dates like "amanha", "sexta" to absolute ISO 8601 in UTC)
- Type: skill, prompt, or script
- Agent: which agent should handle it (if applicable)
Confirm with user — show a summary before creating:
Agendar: - Nome: Post LinkedIn sobre Evolution Summit - Tipo: skill - Payload: social-post-writer LinkedIn post about Evolution Summit April 14-16 - Agent: @pixel - Quando: 2026-04-11 13:00 (BRT) Confirma?Create via API:
Use from dashboard.backend.sdk_client import evo — auto-handles URL + auth.
from dashboard.backend.sdk_client import evo
task = evo.post("/api/tasks", {
"name": "Post LinkedIn sobre Evolution Summit",
"description": "LinkedIn post promoting the Evolution Summit event",
"type": "skill",
"payload": "social-post-writer LinkedIn post about Evolution Summit April 14-16",
"agent": "pixel-social-media",
"scheduled_at": "2026-04-11T16:00:00Z",
})
Important: Convert BRT times to UTC by adding 3 hours. The user's timezone is America/Sao_Paulo (UTC-3).
Listing Tasks
from dashboard.backend.sdk_client import evo
# All pending tasks
pending = evo.get("/api/tasks", params={"status": "pending"})
# All tasks
all_tasks = evo.get("/api/tasks")
Present as a clean table:
ID | Nome | Tipo | Agendado | Status
---|-------------------------------|-------|-----------------|--------
1 | Post LinkedIn Summit | skill | 11/04 13:00 BRT | pending
2 | Financial Weekly extra | script| 12/04 08:00 BRT | completed
Running Now
If user wants to execute immediately:
from dashboard.backend.sdk_client import evo
evo.post(f"/api/tasks/{task_id}/run")
Cancelling
from dashboard.backend.sdk_client import evo
evo.delete(f"/api/tasks/{task_id}")
Date Parsing Rules
The user speaks Portuguese. Common patterns:
- "amanha as 10h" → tomorrow at 10:00 BRT → +1 day, 13:00 UTC
- "sexta 15h" → next Friday at 15:00 BRT → Friday 18:00 UTC
- "segunda de manha" → next Monday at 09:00 BRT → Monday 12:00 UTC
- "hoje a noite" → today at 21:00 BRT → today 00:00+1 UTC
- "daqui 2 horas" → now + 2 hours
Always confirm the parsed date with the user before creating.
Examples
"Agenda um post no LinkedIn pra sexta as 10h sobre o Summit"
{
"name": "Post LinkedIn — Evolution Summit",
"type": "skill",
"payload": "social-post-writer LinkedIn post about Evolution Summit April 14-16, 2026",
"agent": "pixel-social-media",
"scheduled_at": "2026-04-10T13:00:00Z"
}
"Roda o community pulse amanha as 8h"
{
"name": "Community Pulse (manual)",
"type": "script",
"payload": "custom/community_daily.py",
"agent": null,
"scheduled_at": "2026-04-10T11:00:00Z"
}
"Manda um resumo pro Telegram amanha 14h com status dos projetos"
{
"name": "Resumo projetos via Telegram",
"type": "prompt",
"payload": "Check the status of all active projects (Evo AI, Evolution Summit, Evo Academy) and send a summary via Telegram to Davidson",
"agent": "atlas-project",
"scheduled_at": "2026-04-10T17:00:00Z"
}
Important Notes
- Tasks are one-off. For recurring actions, use
create-routineskill instead. - The scheduler checks for pending tasks every 30 seconds.
- Tasks run in background threads — they won't block the scheduler.
- Results are saved in
result_summaryand visible in the dashboard at/tasks. - Always confirm with the user before creating a task.
- Convert all times from BRT (UTC-3) to UTC before sending to the API.