Scheduled tasks: run on their 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.
Grouping tasks with categories
Once you have a few tasks the list is just one long strip. Manage categories in the top right lets you create a few (Daily reports, Monitoring, Content…). Once you have, a filter row appears above the table: All plus each of your categories plus default, each with the number of tasks in it. Click one to see only that group.
- Each row in the Manage categories dialog is one category, with ↑ and ↓ on the right to change where it sits in the filter row (greyed out at either end), plus Rename and Delete
- A task's category is picked on the Schedule screen (step 1 when creating), as an optional dropdown. It only changes how the list is grouped — never when the task runs, and it never re-runs the prompt review, so switching groups costs you nothing
- default is the catch-all: tasks with no category, and tasks whose category was deleted, both show up there
- So deleting a category never deletes tasks — they simply fall back to default, and you can file them somewhere else
- With no categories at all the filter row is hidden: "All" and "default" would be pointing at the same set of tasks
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; Category (optional) — grouping only; Timezone — the time below is interpreted in this zone; Runs at — Every day, Weekdays 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 for
@references to an app, but no attachments: this prompt runs many times over, and a file uploaded today no longer matches "yesterday's data" tomorrow. If the task needs data, say in the prompt where to fetch it from. This step enlarges the dialog so the box can grow with the page.
Saving is all it takes; there is nothing else to start.
"Weekdays" simply means Monday to Friday, in the timezone you picked in the dialog. It does not know about public holidays or holiday-shifted working days: it will still run on Thanksgiving, Christmas or Lunar New Year. Hit Pause in the list if you want it to stop.
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 @ references 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 @ 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
Scheduled runs use your quota too
A note sits permanently at the top of the page: every scheduled run uses your weekly quota, the same allowance as your own chats.
The quota is measured per UTC calendar week, so the more often tasks fire, the faster the week runs out; once it is used up, a triggered chat simply tells you so, and the quota resets at Monday 00:00 UTC. The reminder lives on this page only, because it is only useful while you are still deciding how often to run things.
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
