Set up the scheduled work
1
Write the procedure down as a playbook
A playbook is the repeatable part: the order things happen in, the
accounts that need checking, what to leave alone. Save it with
qb_write_playbook, then confirm it with qb_confirm_playbook — an
unconfirmed playbook is a draft, and qb_run_playbook will refuse it
unless you ask for a rehearsal.Keep it firm-wide unless a client genuinely differs. A practice runs one
month-end close, not seventeen.2
Make the scheduled prompt short
The scheduled prompt should not contain the procedure. It should name it:This matters more than it looks. A long scheduled prompt drifts from what
your playbook says and you end up maintaining two procedures. A short one
always runs the current version.
3
Let it stop at the plan
qb_plan_batch writes nothing to QuickBooks. It resolves names and
accounts, applies your coding rules, flags duplicates, and leaves a table
in the review journal. That table is what you read in the morning;
qb_apply_batch is what you run after you have read it.Setting it up in Claude
Claude calls the feature scheduled tasks. It is available in Claude Cowork on all paid plans (Pro, Max, Team, and Enterprise), and it runs on an hourly, daily, weekly, weekday, or manual cadence. Scheduled tasks have the same access as your ordinary chats, including connectors — so a scheduled task can reach the Zeno connector exactly the way you do when you type. Confirm the connector is enabled for the scheduled task before relying on it.Claude Code users have a second option: routines, which run scheduled
agents in the cloud rather than in the chat app. That suits a practice that
wants the run to happen whether or not anyone’s laptop is open.
Setting it up in ChatGPT
ChatGPT calls it scheduled tasks too, reached from the Scheduled page in the sidebar, where you can see the next run time and pause, edit, or delete each one. How many you can have at once depends on your plan — roughly three on the free and entry tiers, more on Pro and Enterprise. Two caveats worth knowing before you build a practice around it:- MCP connector support is uneven. Full read/write MCP connectors are a Business, Enterprise, and Edu capability; on Plus and Pro you connect servers through developer mode with tighter limits on what a tool is allowed to do. Confirm your plan reaches Zeno’s write tools before you schedule work that depends on them.
- A connector available in chat is not guaranteed inside a scheduled run. Users report scheduled tasks reporting a connector unavailable that works fine when prompted live.
What to schedule
Daily, early
Sync the mirror, pull the feed, and plan the coding for anything the rules
already cover. You arrive to a table, not a queue.
Weekly
Unmatched receipts, aging that moved, bills approaching their due date, and
anything sitting in Ask My Accountant.
Month-end
Run the close playbook to the point of the plan. The entries wait for you.
After a cleanup
Re-run
qb_study_history so the drafted knowledge reflects the books as
they now are, not as they were.What not to schedule
Do not scheduleqb_apply_batch, and do not write a scheduled prompt that
tells Zeno to approve its own plan. You can phrase such a prompt, and it will
do as it is told — the tools obey you, including when you are wrong.
The reason not to is not that the coding will be bad. It is usually good. The
reason is that an approval nobody read is not an approval, and the audit trail
will show a month of them before anyone notices the first mistake. Reading the
table is the product.
Put it on the firm’s calendar
A scheduled prompt knows when it runs; it does not know what is due. Zeno holds that. An engagement is a standing commitment — work this client’s books monthly, due the tenth business day — that opens a period every cycle and puts it on the console’s Today queue until a person closes it. Ask the assistant to create one:qb_create_engagement, which binds the playbook in the same call.
From then on the scheduled prompt can be shorter still — call qb_due_work
and work whatever it lists — and changing a client’s cadence means changing
the engagement, never the prompt. A person says when a period is finished
(qb_close_period), parks one that is waiting on a statement
(qb_park_period), and retires the engagement when the work ends
(qb_retire_engagement). The console’s Engagements page shows what is
open, how late, and which machines have checked in.
Know when it stopped
The scheduled prompt should callqb_due_work even when nothing is due. That
call is the machine’s heartbeat. Under Settings → Notifications, choose how
many quiet days count as stopped and enable Nothing is running. See
Notifications.
Prepared work appears in qb_list_plans; the scheduled agent should also write
what it did to the work log. Applying remains a separate, reviewed action.