Run an agent on a schedule
Give one of your agents a cron clock — the prompt you wrote fires on the schedule you chose, with optional Discord delivery — so recurring reports and checks stop living on sticky notes.
Plus: three pasted asks — Admin Agent drafts the whole task from plain English, Audit Logs narrates a missed run, and a tight discipline prompt so the scheduled prompt never invents numbers.
| Audience | Admins · Developers |
|---|---|
| Time | ~10 min |
| Prerequisites | An Auxot account on any tier. At least one custom agent ([Create an agent from scratch](/tutorials/create-an-agent-from-scratch)) with a clear job description ([Give your agent its job description](/tutorials/give-your-agent-its-job-description)). Helpful: context files ([Add your first context file](/tutorials/add-your-first-context-file)) if the recurring prompt should cite your business. For **Default channel** / **Error channel**, the agent needs Discord wired — [Connect Discord to your agents](/tutorials/connect-discord-to-your-agents) or [Discord Integration](/docs/integrations/discord). |
| You'll end up with | One scheduled task on that agent — cron, timezone, and prompt locked in — plus a clear sense of where to look when a run fails and how this differs from dragging workflow cards ([Run a workflow](/tutorials/run-a-workflow)). |
When a tutorial shows italic text in quotation marks, it usually mirrors a label or helper string inside Auxot. Product copy changes between releases — if something reads differently in your workspace, trust what you see on screen.
Callouts with a Worth knowing gold accent are meant as must-read context before you move on. Blockquotes that open with Tip are lighter, optional depth.
Why this matters
A lot of valuable agent work isn’t a one-off question. It’s the same question on a clock: the morning digest, the “did anything break overnight” pass, and the weekly reminder to review your agents and context. If every run waits for you to remember to open Chat and paste the prompt, the habit dies the first busy week.
Scheduled tasks are how you put your wording on your calendar. You pick the agent, write the prompt it receives when the schedule fires, set a cron expression and timezone, and optionally point Discord at a default channel (answers land there) and an error channel (failures surface there). Nothing “watches” your business on its own. Auxot runs exactly the prompt you configured when the clock hits.
Multi-step boards with human columns are still workflows (Run a workflow). Today is the lane for one agent, one prompt, and repeat.
Quick start
- Sign in: open Auxot in your browser and log in.
- Open the agent: Settings → Agents, click the agent that should own the recurring job.
- Open Scheduled Tasks: on the agent detail page, find Scheduled Tasks, then Add Task.
- Fill the form: give the task a Name, paste a cron expression for Schedule, write the Prompt the agent should receive each run, set Timezone (defaults follow org settings when unset), and save.
- Confirm it’s armed: the task list shows Last run and Next run. Toggle the task off if you want to pause without deleting it.
Done? You should see your task listed with a plausible Next run time, and after the first fire, a Last run timestamp (or an error path you configured).
The agent can do that?
Scheduled tasks are boring infrastructure until the prompt is sharp. Use these three asks so you’re not tuning cron by hand every time.
1. Draft the whole task in Admin Agent chat
Open Chat with the Admin Agent, then paste:
Create a scheduled task on my "[agent name]" agent.
Name: [short label — e.g. "Weekday 8am digest"]
Schedule: [plain language — e.g. "8am Eastern every weekday"]
Timezone: [IANA timezone if not org default]
Prompt: [what you want that agent to produce each run — bullets OK]
If anything is ambiguous (cron vs wording), propose the cron you’d use and explain it in one sentence.
Why it’s non-obvious: You can click every field yourself, but narrating the schedule in English first catches mismatches (“8am” vs UTC, weekend skips, or month-end quirks) before you’ve locked cron. You still approve whatever lands in Settings → Agents; the Admin Agent is drafting on your behalf, not running on autopilot.
2. Debug a run that didn’t show up where you expected
When clocks lie, grab Threads or Events rows for that window from View your audit logs, then paste:
My scheduled task "[task name]" on agent "[agent name]" should have fired around [time + timezone]. Here's what Audit Logs shows: [paste 3–6 rows]. Did it fire? If it failed, what's the first setting or integration I should verify?
Why it’s non-obvious: Missed runs are usually timezone interpretation, a paused toggle, provider capacity, or Discord wiring, not “AI forgot.” Paste the audit-log rows because you asked; you still click through to confirm.
3. Hard-ban hallucinated metrics in recurring prompts
Before you aim a schedule at leadership-facing channels, tighten the prompt:
Every time you run this scheduled prompt: if you don't have verified numbers in my context files or tools, say exactly what’s missing and produce a checklist — do not invent metrics. End with one sentence: "Human should paste or attach: ___."
Why it’s non-obvious: Cron-driven prompts run unattended: there’s no human in chat correcting a confident fiction before it ships. Forcing explicit gaps beats a polished lie. You shaped that rule in the prompt you scheduled.
Go deeper
Cron, in five fields
Schedules use standard five-field cron syntax: minute hour day-of-month month day-of-week.
| Expression | Meaning |
|---|---|
0 8 * * * | Every day at 8:00 |
0 8 * * 1-5 | Weekdays at 8:00 |
0 */4 * * * | Every 4 hours |
0 9 1 * * | Ninth hour on the first day of each month |
*/15 * * * * | Every 15 minutes |
Start conservative: short intervals burn tokens and crowd Discord fast.
Discord channels
If you set Default channel, successful outputs post there after each run. Error channel catches failures. The agent needs a live Discord integration: walk through Discord Integration in the manual (/docs/integrations/discord) if those fields are gray or silent.
Troubleshooting
- Next run doesn’t move / Last run empty: toggle isn’t off; timezone matches what you think; agent still exists and isn’t blocked by provider limits (Take Auxot’s pulse in 10 seconds).
- Discord stays quiet: integration disconnected, wrong channel pick, or task errors before post — check Error channel and Explorer for the failed job (manual: Scheduled Tasks → Last Run / failures).
- Output quality slipped week three: recurring prompts get stale unless context files stay honest (Keep your context files honest and fresh). Schedule a human review of the prompt quarterly.
Workflows vs scheduled agents
- Scheduled task: one agent, fixed prompt, clock trigger. Great when there’s no column-by-column handoff between people or agents.
- Workflow: ordered steps, humans between machines, intake-friendly. Still needs something to create each task unless you glue intakes (Run a workflow, Go deeper → Triggers).
Pick the simplest shape that matches the accountability you need.
Walkthrough
Step 1: Pick the agent and open Scheduled Tasks
Go to Settings → Agents and click the agent whose job already matches the recurring work (reporting, summarizing, or checking), not a generic “everything agent.” If you’re unsure, tighten Give your agent its job description before you automate.
On the agent page, open Scheduled Tasks, then Add Task.
Step 2: Name and schedule
Name is the label you’ll see in lists: make it obvious in three words (”Support nightly sweep”).
Schedule is the cron string. If cron feels alien, use The agent can do that? → 1 with the Admin Agent first, then paste the result here.
Timezone matters more than people admit. If you skip it, org defaults apply: confirm those under org settings if stakeholders span regions.
Step 3: Write the prompt
Prompt is the entire message the agent receives when the timer fires: same gravity as what you’d paste in Chat. Include:
- What sources it may assume (context files, tools, integrations).
- Output shape (bullets, Slack-ready, JSON if downstream consumes it).
- Explicit “do not invent” lines when numbers matter.
Step 4: Discord (optional)
If your team reads Discord before Auxot:
- Ensure Discord is connected for this agent (Connect Discord to your agents or Discord Integration).
- Set Default channel for successful posts.
- Set Error channel so failures don’t silently vanish.
Skip both channels if you’re validating in Audit Logs first: add delivery once the prompt is trustworthy.
Step 5: Save, watch Next run, pause if needed
Save the task. Confirm Next run looks right. After the first execution, check Last run and skim the thread/job (View your audit logs).
Toggle off instead of deleting when you’re iterating: deletion loses history you might want later.
What’s next
- → Run a workflow. When the recurring job is really a chain (draft → approve → send) or needs intake wiring.
- → Trigger a workflow with an intake webhook. HTTP callers start work instead of a cron when outside systems kick off tasks.
- → Automate weekly checkups on your agents. Weekly checklist rhythm across agents, context, credentials, and workflows: boring until it saves you.
- → View your audit logs. Read Threads (
cron) and Events when schedules or Discord posts lie. - → Run scheduled canary checks on production agents. Same frozen probe on a clock: catch silent behavior changes, not only digest mail.
- → Set up your Monday morning briefing. Shaped weekly rhythm in chat; pair with Scheduled Tasks when you want the same briefing logic on a cron you control in the agent UI.
Reference
- Pages in Auxot: Settings → Agents → (your agent) → Scheduled Tasks
- Manual: Scheduled Tasks, Discord Integration
- See also: Create an agent from scratch, Give your agent its job description, Understand Credentials, OAuth, and API keys in Auxot, Trigger a workflow with an intake webhook, Connect Discord to your agents