Skip to main content
ALWAYS ON TIME

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.

The idea

A calendar built for AI employees.

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”.
Recurrence

Pick a pattern, see it on the month.

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:
FrequencyWhat it means
MinutelyEvery N minutes
HourlyEvery N hours
DailyEvery N days
WeeklyOn selected days of the week — use the day-chip picker (Mo, Tu, We, etc.) to choose which days
MonthlyOn a specific day of the month (e.g. the 15th)
YearlyOn 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.
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.
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.
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.
A toast confirms “Schedule updated” after saving.
Wake window

Business hours, enforced automatically.

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.
Overnight runs

While you slept.

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.

Time saved

A week on schedule.

Recurring jobs are small individually. Across a full week they add up. The receipt below reflects the schedules on this page running as described.

Weekly schedule summary
Mon — Fri · 5 recurring agents · typical week
Morning inbox digest (daily · 07:00)~25 min / wk
Pipeline report — Dario (Mon · 08:30)~20 min / wk
Spend anomaly check — Felix (daily · 08:30)~30 min / wk
Support queue digest — Priya (Mon + Thu · 09:00)~40 min / wk
Competitor brief — Maya (Fri · 10:00)~35 min / wk
Typical weekly time back~2.5 hrs / wk
ILLUSTRATIVE — BASED ON THE SCHEDULES DESCRIBED ON THIS PAGE
Orientation

The Calendar page.

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.

Calendar · Week viewMonthWeekDay+ New schedule
Mon
Tue
Wed
Thu
Fri
8a9a10a11a12p1p2p3p4p5p
08:30
D
DarioSales
Active
Monday pipeline report
RunsWeekly · Mon · 08:30
Duration~45 min
Next runMon · 08:30
Delivery#sales
saves ~50 min/wk
M
MayaMarketing Manager
Active
Daily analytics check
RunsWeekdays · 09:00
Duration~30 min
Next runTomorrow · 09:00
Delivery#marketing-daily
saves ~2.5 hrs/wk
M
MayaMarketing Manager
Active
Daily analytics check
RunsWeekdays · 09:00
Duration~30 min
Next runTomorrow · 09:00
Delivery#marketing-daily
saves ~2.5 hrs/wk
10:30
F
FelixFinance & Ops
Active
Overdue invoice chase
RunsWeekly · Tue · 10:30
Duration~40 min
Next runTue · 10:30
DeliveryHome feed
saves ~45 min/wk
14:00
D
DarioSales
Active
Stale-lead follow-up sweep
RunsTue & Thu · 14:00
Duration~30 min
Next runThu · 14:00
DeliveryDario’s conversation
saves ~1 hr/wk
M
MayaMarketing Manager
Active
Daily analytics check
RunsWeekdays · 09:00
StatusCompleted · 09:27
Delivery#marketing-daily
saves ~2.5 hrs/wk
P
PriyaSupport lead
Active
Support queue health check
RunsMon · Wed · Fri · 13:00
Duration~25 min
Next runToday · 13:00
Delivery#support
saves ~1.2 hrs/wk
M
MayaMarketing Manager
Active
Daily analytics check
RunsWeekdays · 09:00
Duration~30 min
Next runThu · 09:00
Delivery#marketing-daily
saves ~2.5 hrs/wk
11:00
M
MayaMarketing Manager
Active
Weekly competitor scan
RunsWeekly · Thu · 11:00
Duration~45 min
Next runThu · 11:00
DeliveryHome feed
saves ~1 hr/wk
14:00
D
DarioSales
Active
Stale-lead follow-up sweep
RunsTue & Thu · 14:00
Duration~30 min
Next runThu · 14:00
DeliveryDario’s conversation
saves ~1 hr/wk
16:30
F
FelixFinance & Ops
Active
Weekly cash-flow report
RunsWeekly · Thu · 16:30
Duration~60 min
Next runThu · 16:30
DeliveryHome feed
saves ~1.5 hrs/wk
M
MayaMarketing Manager
Active
Daily analytics check
RunsWeekdays · 09:00
Duration~30 min
Next runFri · 09:00
Delivery#marketing-daily
saves ~2.5 hrs/wk
P
PriyaSupport lead
Active
Support queue health check
RunsMon · Wed · Fri · 13:00
Duration~25 min
Next runFri · 13:00
Delivery#support
saves ~1.2 hrs/wk
16:00
P
PriyaSupport lead
Active
Weekly CSAT digest
RunsWeekly · Fri · 16:00
Duration~45 min
Next runFri · 16:00
Delivery#support
saves ~1 hr/wk
AgentsMaya · MarketingDario · SalesPriya · SupportFelix · Finance12 scheduled jobs · 4 agents · 24/7
Rail
”Next up” insight row + upcoming events grouped by Today, This week, This month, and Later (capped at 30)
Views
Month view (dots and chips per day), week view and day view (time-block tiles sized by duration)
Sheet
Click ”+ New schedule” in the rail or click an empty slot in the week/day view to open the ScheduleSheet
In month view, clicking a day cell opens a DayDrawer that lists every event for that day — useful when multiple schedules land on the same date.

ScheduleSheet

Three sections, zero guessing.

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.
FrequencyWeekly — also: Minutely, Hourly, Daily, Monthly, Yearly
Days
MoTuWeThFrSaSu
Stop ruleNever / On date / After N occurrences

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.
ScheduleSheet · New schedule
1 What to run
TypeAgent task
AgentMaya
GoalCheck my inbox and summarize unread messages.
2 When to run
DateJune 17, 2026
Time09:00
Duration30 m
3 Repeat ON
FrequencyWeekly
DaysMoTuWeThFrSaSu
4 When this run finishes
Home feed
Just run it
Conversation
Create schedule
Next occurrences
Mon, Jun 17 · 09:00
Wed, Jun 19 · 09:00
Fri, Jun 21 · 09:00
Timezones

Timezone handling.

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.

Safety

Conflict detection.

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.
After each run

Where the result lands.

The DeliveryPicker in section 4 of the ScheduleSheet controls where Actionist posts the result card after each run finishes.

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.

Per-agent controls

The agent Scheduled runs tab.

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

Schedule Preferences

Enable / disable scheduling

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.
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.
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:0017: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.

Configuring wake windows

Open the Scheduled runs tab

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.
Audit trail

Run history.

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
FailedSlack digest (3 retries)retried · 11:02Session
TimeoutFull codebase audit10 m 30 s · 14:15Session
execution-history · last 24 h
CompletedMorning inbox digest2 m 14 s · 09:01Session
CompletedWeekly CRM update4 m 38 s · 09:00 MonSession
MissedEvening report — outside wake window— · 19:30Session
FailedSlack digest (3 retries)retried · 11:02Session
TimeoutFull codebase audit10 m 30 s · 14:15Session
RunningCompetitor research briefin progress · 17:00Session

Status types

Completed

Completed

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.

Under the hood

From trigger to transcript in five steps.

Clock firesThe scheduler wakes within ±60 seconds of the stored time and enqueues the run.
Wake window checkIf outside the configured window, the run is recorded as Missed and the schedule advances.
Conflict serialiseSame-agent concurrent fires are staggered 2 seconds apart — FIFO, no parallel runs.
Agent executesThe task instruction is handed to the agent. Retries on failure: up to 3, 30 s delay, 2× backoff to 5 min max.
Transcript + deliveryThe session is written to history. The result card posts to the configured delivery destination.
Reference

Limits and defaults.

Hard limits, retry behaviour, and default values that apply across all schedules.

10 minexecution timeout (hard limit)
30 stimeout grace period
±60 sexecution tolerance window
100execution queue cap (oldest dropped)
3max retry attempts on failure
30 sretry delay with 2× backoff, up to 5 min
24 hmissed-run recovery window on startup
2 sstagger between concurrent same-agent fires
30 minduration default
1–100interval multiplier range
09:00–17:00wake window default
90 dayshistory retention, 1,000 entry cap
ParameterValue
Execution timeout (hard limit)10 minutes
Timeout grace period30 seconds
Execution tolerance window±60 seconds
Execution queue cap100 entries (oldest excess dropped)
Max retry attempts on failure3
Retry delay (with 2× backoff)30 seconds, up to 5 minutes max
Missed-run recovery window24 hours (checked on app startup)
Stagger between concurrent fires2 seconds
Duration default30 minutes
Duration minimum1 minute
Duration maximum1,440 minutes (24 hours)
Duration presets15 m, 30 m, 1 h, 2 h
Interval multiplier range1–100
Wake window default09:00–17:00
Timezone defaultSystem timezone
CalendarRail upcoming cap30 events
History retention90 days
History entry cap1,000 entries

Best practices

Make schedules reliable.

These patterns separate agents that run smoothly every day from ones that silently miss, timeout, or pile up.

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.
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.
Set 09:0017: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.
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.
In order:
  1. Agent-level enable toggle — is scheduling enabled on the Scheduled runs tab?
  2. Wake window — does the scheduled time fall inside the configured window?
  3. Memory bucket permissions — empty memoryPermissions can cause silent write failures that look like no-ops.
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.
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.
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.
Set it once

Put your agents on the clock.

Open the Calendar page, describe a task, and set it to fire every morning. The agent handles it — you check the transcript when you want.

Every execution is logged with a full transcript.
Conflict detection · Wake windows · 90-day history.

Keep going

Next steps.

Agents

Configure the agent — tools, approval mode, memory permissions — before putting it on a schedule.

Reactions

For event-driven automation: fire an agent when something happens, not at a fixed time.

Channels

Connect a Telegram or Slack bot so delivery notifications reach your team where they work.

Cloud

Move an agent to the hosted runtime so schedules keep firing when your laptop is closed.