A schedule runs a task on a recurring cadence — daily, weekly, hourly, or on a custom cron — and posts the result back where you want it.
Calendar reminders ask you to do work. Schedules do the work, then tell you it's done.

When a task wants to be a schedule
Almost any recurring "I should..." that lives in your head is a candidate. The pattern is: the work is valuable, it's predictable, and the cost of skipping it is real but easy to ignore.
Worked examples from VM0:
- Morning brief at 8 a.m. every weekday — unread Slack mentions, open PRs, calendar, focus suggestion
- Weekly metrics digest every Monday — last week's numbers vs. prior week, posted to
#metrics - Inbox cleanup every evening — archive newsletters, label by sender, draft urgent replies
- Production health check every 30 minutes — query the dashboard, page on-call if any metric is out of band
- Friday content drop at 2 p.m. — blog draft + LinkedIn posts + social cards bundled for review
- End-of-quarter board prep on the 25th of the third month — pull metrics, draft narrative, generate the deck
Anything you'd otherwise put on a recurring calendar reminder is a candidate.
Creating a schedule
Two ways. Pick whichever fits.
From a chat that works. Run the task as a one-off first. When it produces what you want, say:
"Run this every weekday at 8 a.m. Los Angeles time and DM me the result."
Zero confirms the cadence, the action, and the destination. The current chat becomes the schedule's body. You can edit or pause it later.

Explicitly, from scratch. Open the Schedules page in your workspace and write the schedule directly. Useful when you know the shape ahead of time and don't want to do a dry run.

What runs each time
Each schedule fires a fresh chat. The chat re-reads the latest context from your tools, calls the connectors it needs, and produces the result.
This matters for two reasons:
- No accumulated state. Last Monday's run doesn't leak into this Monday's. The schedule is the same shape; the data is fresh.
- Each run is replayable. Open the schedule's history to see exactly what the last run did, where it spent credits, and what it produced.
If a run fails — network blip, expired token, ambiguous input — Zero records the failure with the reason and notifies you instead of silently dropping it.

Cron, plain English, or human cadence
You can specify timing in three ways:
- Plain English. "Every weekday at 8 a.m. Los Angeles time" — Zero parses this. Time zones, working days, "first of the month," "every other Friday" all work.
- Cron expression. "0 8 * * 1-5" — for precise control.
- Human cadence. "Daily," "weekly," "monthly" with a default time chosen by Zero (typically 9 a.m. workspace local).
The plain-English path is what most teams reach for. Cron is there when you need it.
Destinations
A schedule needs to know where the result goes:
- Slack channel or DM — most common; the result lands in the channel as a message or thread
- A Notion page or database — for things that should be archived rather than broadcast
- A Google Doc or Sheet — appended or overwritten
- A GitHub issue or PR comment — for engineering workflows
- A workspace file — when the artifact is a video, image, or downloadable asset
Specify the destination in the prompt. "Post to #engineering" or "DM me" is clearer than "send it somewhere."

Tips that come from running schedules in production
- Watch the first three runs. Schedules are easy to set up; they're easier to refine once you see what Zero actually produces in your environment.
- Keep each task small. Long, multi-step schedules are more brittle. If a single schedule has to update five systems, consider splitting into two.
- Pin the destination. Channels get renamed and people leave. Mention the destination by name in the schedule body; Zero will warn if it can't find it next run.
- Time-bound long-running queries. If the prompt asks for "the last 30 days," restate that on every run so the window stays fresh.
- Pause before vacations. Especially for schedules that DM you — coming back to 14 brief DMs isn't useful. Pause from the Schedules page; resume when you're back.
Costs
Each run consumes credits. The Schedules page shows the average credit cost per run for each schedule, so you can spot the expensive ones. A morning brief is usually cheap (a few hundred credits). A weekly multi-tool content bundle might be one or two thousand. See Credits & billing for how this maps to dollars.
What's next
- See Skills for putting a frequently used pattern behind a name.
- See Chat for what happens during each run.
- See Example workflows for five end-to-end schedule + skill combinations.