Scheduled tasks: let the agent run on its own clock
A scheduled task is one prompt plus one time. When it fires, Quodara starts a new chat and sends that prompt in, exactly as if you had typed it.
So it is not a cut-down execution mode. What comes out is a full conversation, and the agent can do everything it normally does.
Where it lives
Schedule in the sidebar, between Explore and Shop, or open Schedule directly.
The table has seven columns: ID, title, status, when it runs, history, prompt review and actions. The title column shows the title only. Status is its own column (Active or Paused), not tucked under the run time.
Creating one
Click + New scheduled task. The dialog is two steps:
- Title (optional) — leave it blank and the first 32 characters of the prompt are used; Timezone — the time below is interpreted in this zone; Runs at — Every day or Every week (weekly also needs a weekday), then hours, minutes and seconds on a 24-hour clock
- What to run — the same box as new chat: attachments work, and typing
@references an app or a file. This step enlarges the dialog so the box can grow with the page.
Saving is all it takes; there is nothing else to start.
Your prompt gets reviewed right after you save
Once the task is created, Quodara opens a chat that reviews the prompt you just wrote. It is a conversation, not a verdict:
- It first finds the places where the prompt would stall when the task fires — vague goal, no stated output format or destination, no data source, no app named, no definition of done
- Anything where a different answer visibly changes what you get goes on one card: the facts only you can answer (who "my favourite actor" actually is, which table the data lives in, who the output is for) as well as the scope calls — how far back to look, how many items a day, Markdown or a web report, where it lands. Twelve items a day and three items a day are two different things, so it does not settle that for you. Every question is one you can answer off the top of your head, with options wherever options exist, and every question can be left blank — blank means it goes with the option it recommends
- What only affects how it works rather than what you receive — file naming, where temp files go, how dedup and sorting are implemented, retry counts — it does not bother you with. It picks the sensible answer and tells you afterwards what it picked
- Once you have answered, it hands back one complete prompt you can paste straight back into "What to run", and tells you to tick "skip the review" when you save it
This sits right after saving on purpose: gaps can only be closed while you are still at the keyboard. By the time the task actually fires it is usually the middle of the night — it cannot reach you then, so it would have to guess. Asking you now is exactly what keeps it from having to ask you later.
Rewriting the prompt gets reviewed again. A new prompt is effectively a new task, and it has to be able to run unattended just the same. Changing only the time, the title or the attachments does not trigger a review — none of those affect how complete the prompt is.
A prompt that has already been reviewed can skip it. Under the "What to run" step there is a This prompt has already been reviewed — skip the review tickbox; tick it and saving opens no new chat. Tick it when you paste back the version the review handed you — reviewing the same text twice only repeats the same verdict and costs you another chat's worth of usage. It applies to that one save only; the next time you rewrite the prompt it gets reviewed again.
The page never navigates away on its own. After you save, a dialog tells you the review chat is ready and asks whether you want to open it. Click Not now and you stay on the list.
The Prompt review column is the way back in: it shows the chat id of the most recent review and the status it was in (Queued, Running, Done…), and clicking it opens that chat. Only the latest review is kept — once the prompt changes, the previous verdict was about a different prompt. The status is a snapshot fetched with the list, not a live feed; open the chat to watch real progress.
The review chat counts against your usage like any other chat. Close it if you do not want it — the task is already saved either way.
Times are stored in UTC
Rules are stored in UTC only — there is no timezone column. The line reading Stored as UTC: … updates live as you type, so you can see the real stored value while filling the form rather than discovering it afterwards. To enter UTC directly, pick UTC in the timezone dropdown.
One consequence worth stating plainly: in regions that observe daylight saving, the local time you see shifts by an hour. 01:00 UTC is 20:00 in New York in winter and 21:00 in summer. That is the price of having exactly one copy of the time, not a bug.
What happens when it fires
Quodara starts a chat and sends the stored prompt into it, along with its attachments and @ references. From there it is an ordinary run — reading code, checking logs, producing a report, whatever the prompt asked for. Execution steps, artifacts and deployment buttons all appear in that new chat, exactly as in one you started yourself.
The message carries a short fixed note in front of your prompt, saying the run was started by a scheduled task and that you are probably not around. You can see it yourself by opening that chat — what the agent received is exactly what you see, with no hidden extra instructions.
That note changes one thing: the agent will not stop to ask you for confirmation. Scheduled tasks often fire in the middle of the night, where a single "please confirm" wastes the whole run and you only see it in the morning. So when something is missing it picks the most reasonable default and carries on, writing down which assumptions it made. It only stops to ask when it genuinely cannot continue and every assumption risks something irreversible.
Irreversible actions — publishing to production, merging to main, deleting data, posting externally — are still never done on your behalf unless the prompt itself authorises them. Dropping the confirmations only removes the questions nobody could answer at 3am; it does not hand over the keys.
When the run produces an interactive report, the report ends with an extra section, Suggested prompt for this scheduled task (with a copy button): where it got stuck, which parts it had to assume, and a rewritten prompt. Paste it back into the task if you like it, and the next run will not stall in the same place. That section lives in the report only — the chat bubble stays a couple of sentences and does not paste the full prompt.
Click View (N) in the history column to see each run’s time, status and chatId. The chatId opens the chat that run created. The prompt itself is not shown here.
Pausing, editing, deleting
- Pause switches the status column to Paused and keeps the rule; Resume brings it back
- Editing covers both the time and the prompt, and takes effect from the next run
- Deleting removes the rule only — chats it has already created are kept
Spread tasks out to stay clear of the limit
A note sits permanently at the top of the page: spread scheduled tasks across the day rather than stacking them on one moment.
Usage is measured over a rolling five-hour window, so several tasks firing at the same instant compete for the same allowance. The reminder lives on this page only, because it is only useful while you are still choosing the times.
What this is good for
- Turning yesterday's numbers into a daily report every morning
- Checking the live app for errors at a fixed time each day —
@the app and the agent goes and reads the logs - Producing next week's content schedule every Monday
- Sweeping a page or an endpoint on a cadence and writing up anything that looks wrong
The test is simple: if you would be willing to type the same message yourself every day, it belongs here.
Common questions
Q: How should I word the prompt? A: Write it as the first message of a new chat — what to do, what shape the result should take, and @ the app if one is involved. Nobody is standing by to clarify when it fires, so saying it fully the first time matters more than anything else. You do not have to agonise over it, though: the review chat that opens after you save will tell you what is missing and hand you a better version.
Q: What if I disagree with the review? A: It only suggests; it never edits your task. If you answered a card question badly, just say so in the chat and ask for another pass. To take the result, copy the final prompt back into "What to run" (edit the task, paste, tick This prompt has already been reviewed — skip the review, save). To ignore it, just close the chat and the task runs exactly as you wrote it.
Q: Are missed runs caught up later? A: No. The task simply moves to its next scheduled time. Catching up would create a burst of chats the moment service resumed, which is worse than missing one.
Q: How precise is the timing? A: You can set hours, minutes and seconds, but the scheduler sweeps every 30 seconds, so a run lands near the chosen moment rather than exactly on it. For anything on the hour or the minute this is more than enough.
Q: Do scheduled runs count against my usage? A: Yes, exactly like chats you start yourself. An expired plan or an exhausted allowance is not blocked at trigger time — the chat is still created, and the error shows up inside it.
Q: Can it publish to production for me? A: No. A scheduled task sends a message on your behalf; it does not press Publish. You can have it run the checks and write up the conclusion, and still confirm the release yourself in that chat — see 04-publish.md.
Read next: 09-multi-target.md
