Put your agents on the clock. One-time and recurring agent tasks, full calendar UI, timezone handling, wake windows, and a complete run history — no cron syntax required.
Your agents show up — whether you’re there or not.
Describe the task once. Drop it on the calendar. The agent fires every morning, every week, or at the exact moment you need it — silently, in the background, with a full transcript waiting when you check in.
Every schedule targets a single agent task. Write the instruction once — the agent handles it on time, every time.
One-time
Fire an agent task at a specific date and time, once. Use it for things that happen once — a briefing before a product launch, a one-off data export, a post-event summary.
Recurring
Fire on a repeating cadence: every morning, every Monday, the first of each month. Six frequency options, interval multiplier from 1 to 100, and three stop rules.
The Calendar page is available on the desktop app only. Every schedule targets an Agent task — the type is always “Have an agent perform a task”.
Toggle Repeat on in the ScheduleSheet to expand the recurrence block. Every combination is expressed in plain language — no cron syntax, no documentation to look up. Select a pattern to preview it:
Mo
Tu
We
Th
Fr
Sa
Su
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Once — June 10 at 09:00 your timezone. Fires exactly once, then the schedule is complete. Good for a pre-launch briefing or a one-off data export.
Every day at 09:00 — interval: 1. Continues until you set a stop rule (On date or After N occurrences) or delete the schedule.
Every Monday, Wednesday, Friday at 09:00. Use the day-chip picker (Mo, Tu, We…) to select any combination. The interval multiplier can make it every 2nd week, every 3rd, and so on.
Monthly — day 8, then 15th, then 22nd illustrates three separate monthly schedules at different dates. Each “Monthly” schedule targets one specific day of the month (e.g. the 15th). Interval: every N months.
Frequencies
Six frequency options are available:
Frequency
What it means
Minutely
Every N minutes
Hourly
Every N hours
Daily
Every N days
Weekly
On selected days of the week — use the day-chip picker (Mo, Tu, We, etc.) to choose which days
Monthly
On a specific day of the month (e.g. the 15th)
Yearly
On a specific date each year
The interval multiplier lets you say “every 3 days” or “every 2 weeks” — set any integer from 1 to 100.
Stop rules
Three options control when a recurring series ends:
Never — continues indefinitely until you edit or delete the schedule.
On date — stops after a specific calendar date.
After N occurrences — stops automatically after a set number of firings.
You choose the stop rule when creating the schedule and can change it at any time via “All occurrences” in the edit scope modal.
Live preview
While you configure recurrence, the PreviewPanel on the right side of the ScheduleSheet shows the next occurrences in real time — date, day of week, and time for each upcoming run. Use it to sanity-check your cadence before saving.The recurrence summary also appears as a human-readable sentence (“Every Monday and Wednesday at 09:00, starting June 15”) so you can verify the pattern at a glance.
Editing a recurring series
Click any event on the calendar to open the ScheduleSheet in edit mode. After you make changes and click Save changes, a scope modal appears with three options:
This occurrence — change only the single instance you clicked.
This and following — change from this occurrence forward, leaving past ones intact.
All occurrences — change the entire series, including future occurrences.
The wake window defines a daily time range during which the agent is allowed to fire. Schedules that fall outside the window are skipped — the engine records each skip as a Missed run in execution history with a note explaining the reason, then advances to the next occurrence. Skipped firings are not retried.
24-hour day — agent’s configured timezone
09:00
17:00
Missed · 19:30
00:0006:0012:0018:0024:00
Inside the window. Any scheduled execution between 09:00 and 17:00 fires normally and appears in run history as Completed (or Failed if the task errors).
Outside the window. The amber dot at 19:30 shows a skipped firing. Recorded as Missed with reason noted. The schedule advances to its next occurrence — no retry.
Default window. 09:00–17:00 in the agent’s configured timezone. Set a custom range in the agent’s Scheduled runs tab under Schedule Preferences.
Use wake windows instead of toggling individual schedules on and off manually. A single wake-window setting prevents every schedule for this agent from firing outside business hours — with a full audit trail of every skip.
Agents on a schedule don’t wait for you to show up. By the time you open the app, the morning digest is already posted, the pipeline report is in your feed, and anything unusual has been flagged — all logged with full transcripts.
execution-history · overnight · Jun 12
CompletedMorning inbox digest — Maya1 m 52 s · 07:00Session
CompletedWeekly pipeline report — Dario3 m 14 s · 08:30Session
CompletedSpend anomaly check — Felix2 m 07 s · 08:30Session
MissedSupport queue digest — outside wake window— · 06:00Session
Click any Session link to open the full transcript. The run below shows what the conversation looks like when you check in after the fact.
S
@sam_actionist_bot
ONLINE
SEEN · READING CONTEXT
Good morning. Here is your inbox summary for the last 12 hours: 23 emails processed, 4 flagged as needing a reply today, 1 marked urgent (Northwind contract renewal — deadline Friday). The remaining 18 are filed or archived.
07:00
Pipeline report is ready. 11 open deals, 3 moved to proposal stage overnight. One deal at Northwind stalled — no activity in 9 days. Dario’s report is in your home feed.
08:31
TOOL · FLAG_ANOMALY
Spend anomaly flagged: software line item 2.4x above the 30-day rolling average. Felix reviewed the transactions — two duplicate charges from the same vendor. Details in the spend report.
08:33
Got it. Anything I need to act on before standup?
09:02
Two things: reply to the Northwind contract thread before end of day, and approve the duplicate-charge reversal Felix queued. Both are in your home feed with one-tap approve cards.
09:02
Illustrative scenario. Each run above maps to a recurring schedule on the Calendar page with delivery set to Home feed or Telegram. The “spend anomaly” is the kind of narrow, scoped task the 10-minute execution limit is well suited for.
Open the Calendar from the left navigation bar. The page has three zones that work together. Below is a live week — hover any event (tap on mobile) for its full schedule card, or hover an agent in the legend to isolate their workload.
The ScheduleSheet walks you through three sections in order. Select a section to explore its fields:
TypeAgent task — “Have an agent perform a task”
AgentSelect from your configured agents, e.g. Maya
GoalRequired. The task instruction — “Check my inbox and summarize unread messages.” The agent receives this verbatim at run time.
The schedule type is always Agent task. The Goal field is the only required text — be specific, keep it scoped to what the agent can complete within the 10-minute execution limit.
DatePick from the date picker. Displayed in the schedule’s timezone.
Time09:00 — HH:MM in the chosen timezone
DurationPresets: 15 m / 30 m (default) / 1 h / 2 h — or type any value between 1 and 1,440 minutes. Controls block height in calendar and feeds the conflict checker.
TimezoneDefaults to system timezone. If this differs from your system zone an amber warning card appears — read it before saving.
RepeatToggle on to expand the recurrence block. Off = one-time.
The PreviewPanel on the right of the sheet shows the next occurrences in real time — date, day of week, and time for each upcoming run.
Just run it — silent. Results visible only in Schedules history.
Home feed — posts a result card to your feed after each run. Default for new schedules.
Conversation — result card lands in a specific agent conversation.
Telegram / Slack — notifies the connected bot channel. Appears when the agent has a bot configured.
Delivery resets to Home feed automatically if you change the target agent. Re-select Telegram or Slack after switching.
Open the ScheduleSheet
Click + New schedule in the CalendarRail sidebar, or click any empty time slot in the week or day view. The ScheduleSheet slides in from the right.
What to run
The schedule type is already set to Agent task — “Have an agent perform a task.” Select the agent from the dropdown, then type the task instruction in the Goal field (required). Example: “Check my inbox and summarize unread messages.”
When to run
Pick the date and start time. Choose a duration from the presets — 15 m, 30 m (default), 1 h, or 2 h — or type any value between 1 minute and 1,440 minutes. Duration controls the block height in week/day view and feeds the conflict checker.Verify the Time zone dropdown. If it differs from your system timezone, an amber warning card appears — read it before saving (see Timezone handling below).To make the schedule recurring, toggle Repeat on and configure the recurrence block.
When this run finishes
Choose where the result card lands from the DeliveryPicker. Options: just run it silently, post to your home feed, post into a specific conversation, notify on Telegram, or notify on Slack. Delivery defaults to the home feed if you change the target agent — re-select if needed.
Create schedule
Click Create schedule. A toast confirms “Schedule created” and the event appears on the calendar immediately.
Every schedule stores a timezone as an IANA string. The app defaults to your system timezone — but for agents expected to fire during business hours in a different region, you choose the zone explicitly.
ScheduleSheet · When to run
DateJune 17, 2026
Time09:00
Time zoneAmerica/New_York
!
Runs at 09:00 in America/New_YorkThat’s 14:00 in your time zone (Europe/London)
When the schedule timezone differs from your system timezone, an amber banner appears: “Runs at [time] in [zone] — that’s [local time] in your time zone ([your zone]).” Read this before clicking Create schedule — it tells you exactly when the agent will fire in your local time. A 9:00 AM schedule in America/New_York fires at 2:00 PM in Europe/London.
Actionist stores the timezone you select and computes firing times from it — not from your browser’s current offset. Daylight saving transitions are handled automatically.
The ScheduleSheet checks for overlaps against the same agent’s existing schedules in real time, before you save.
New schedule
Overlap with same agent’s existing schedule?
No
Save — schedule created
Yes
ConflictBanner blocks save — “Schedule conflict: [title] overlaps with an existing schedule”
Adjust time or duration, then save
Conflict detection is agent-scoped. Two schedules for the same agent that overlap will trigger the banner. Two schedules for different agents can share the same time slot without any warning — each agent runs in its own execution lane.
Set the duration accurately. The conflict checker uses the stored duration as the overlap window — if you set a shorter duration than the task actually needs, the banner will not fire on a genuinely conflicting later schedule.
The DeliveryPicker in section 4 of the ScheduleSheet controls where Actionist posts the result card after each run finishes.
Just run it
Home feed
Conversation
Telegram / Slack
No card. The run executes silently. Results are visible only on the Schedules/Triggers page and in the Execution history — nothing appears in your feeds or channels. Best for high-frequency background jobs where you only need to check in occasionally.
Tell me when it’s done. A result card posts to your home feed after each run. This is the default when you create a new schedule or when you change the target agent. Re-select if you switch agents.
Post into a conversation. Choose a specific agent conversation and the result card lands there, threaded with the agent’s other output. Best when a scheduled task is part of an ongoing workflow.
Notify me on Telegram or Notify me on Slack. The result card posts to the connected bot channel after each run. These options appear when the selected agent has a Telegram bot or Slack bot configured.
Delivery resets to the home feed automatically if you change the target agent in the ScheduleSheet. Re-select the Telegram or Slack option after switching agents.
Open the Agents page, select an agent, and click the Scheduled runs tab. This is where you set the master controls that apply to all of the agent’s schedules at once.
Maya · Scheduled runs
Schedule Preferences
Scheduling enabledON
Agent timezoneAmerica/New_York
Wake windowON09:00to17:00
Schedules
Morning inbox digestNext: Mon Jun 17 · 09:00EditDelete
The enable toggle at the top of Schedule Preferences controls all of the agent’s schedules at once. When the toggle is off, every scheduled job for this agent is paused — no executions fire until you turn it back on. Individual schedules also have their own toggles in the list below for finer control.
Agent timezone
Set a timezone specifically for this agent. All schedules you create from the AgentScheduleTab will default to this zone. This is separate from the per-schedule timezone you can set in the ScheduleSheet — the agent-level setting is the starting default, not a hard override.
Wake window
The wake window defines a daily time range during which the agent is allowed to fire. Schedules that fall outside the window are skipped — the engine records each skip as a Missed run in execution history with a note explaining the reason, then advances the schedule to its next occurrence. Skipped firings are not retried.Toggle Wake window on to reveal the start and end time inputs. The default is 09:00–17:00. Set these in HH:MM format using the agent’s configured timezone.
Use wake windows instead of toggling individual schedules on and off manually. A single wake-window setting prevents every schedule for this agent from firing outside business hours.
In the Agents page, select the agent and click the Scheduled runs tab. The “Schedule Preferences” section appears at the top.
Confirm scheduling is enabled
The enable toggle should be on. If it is off, click to turn it on — otherwise no schedules will fire regardless of wake window settings.
Set the agent timezone
Choose the timezone from the Timezone dropdown. Use the agent’s local business timezone, not your browser’s timezone, if they differ.
Turn on the wake window
Toggle Wake window on. Set the start time (e.g. 09:00) and end time (e.g. 17:00). Any scheduled execution that falls outside this window will be skipped.
Every execution is recorded with its status, duration, and a link to the full transcript. History is stored locally on your desktop — it is not synced to the web app. Retained for 90 days, capped at 1,000 entries.
Execution history
CompletedFailedMissedTimeoutRunning
CompletedMorning inbox digest2 m 14 s · 09:01Session
MissedEvening report — outside wake window— · 19:30Session
The agent task finished within the time limit and without error.
Failed
Failed
The task encountered an error. Up to 3 automatic retries with 30-second delay (doubling up to 5 minutes).
Missed
Missed
The app was closed when the schedule was due. Missed executions within the past 24 hours are recovered on next startup.
Timeout
Timeout
The task exceeded the 10-minute hard limit (plus 30-second grace period) and was forcibly ended.
Cancelled
Cancelled
The run was cancelled before it completed.
Running
Running
The task is currently executing in the background.
Each row in the history panel links to a Session — the ephemeral transcript Actionist recorded during that run. The transcript shows every tool call, model output, and step the agent took, making it straightforward to verify what actually happened or diagnose a failure.
For the history of a single schedule (rather than all schedules), open the agent’s Scheduled runs tab and follow the link from any schedule row. History is retained for 90 days, with a maximum of 1,000 entries.
These patterns separate agents that run smoothly every day from ones that silently miss, timeout, or pile up.
Set duration accurately
Duration feeds the conflict checker. If you set a shorter duration than the task actually needs, the banner will not fire on a genuinely conflicting later schedule — and both will attempt to run at the same time for the same agent. Duration also controls block height in week/day views, so accurate values make the calendar readable at a glance.
Verify the timezone before saving cross-zone schedules
The amber warning card shows the local-time equivalent before you click Create schedule. For agents expected to fire during business hours in a remote timezone, this is the moment to confirm — not after three missed mornings.
Use wake windows instead of manual toggling
Set 09:00–17:00 in the agent’s Scheduled runs tab to prevent any schedule for that agent from firing outside working hours. Each skipped firing is recorded as a Missed run in execution history with the reason noted, so you still have a full audit trail. You do not have to remember to re-enable schedules each morning.
Recovery covers only 24 hours
If the app was closed when a schedule was due, the engine queues missed executions from within the past 24 hours on startup. Older misses are silently dropped. For high-frequency schedules, only the most recent missed firing is recovered. If continuity matters, move the agent to the cloud runtime for unattended headless execution.
Agent does nothing? Check three things
In order:
Agent-level enable toggle — is scheduling enabled on the Scheduled runs tab?
Wake window — does the scheduled time fall inside the configured window?
Memory bucket permissions — empty memoryPermissions can cause silent write failures that look like no-ops.
Same agent serialises FIFO
Two schedules for the same agent firing at the same time do not run in parallel — the second waits for the first to complete or time out. Different agents run in parallel in their own execution lanes. If two tasks for the same agent must not block each other, assign them to separate agents.
Write concise task instructions
The hard execution timeout is 10 minutes. Agent tasks that exceed it are forcibly terminated and recorded as Timeout. Write narrow, scoped instructions for scheduled tasks — “Summarize the last 24 hours of #engineering Slack messages and post to my home feed” will complete reliably; “Audit the entire codebase and produce a technical spec” almost certainly will not.
Move to cloud for always-on execution
Local-desktop schedules stop firing when your machine sleeps or the app closes. For schedules that must run overnight, on weekends, or unattended, move the agent to the hosted cloud runtime — see Cloud for steps.