Skip to main content

Task Scheduler

What the Task Scheduler does

The Task Scheduler lets you define recurring tasks using cron expressions. At the scheduled time, AI Partner automatically runs the task as either a chat message (quick query) or a goal (full ReAct execution loop).

This is different from the Heartbeat/Proactive Engine:

  • Heartbeat — LLM-driven, uses HEARTBEAT.md, decides what to do each tick
  • Task Scheduler — deterministic, explicit schedule, you define exactly what runs

Use Task Scheduler when you want a specific, repeatable task on a fixed schedule. Use Heartbeat when you want the agent to use judgment about what's worth doing.


Creating a scheduled task

Go to sidebar → Task Scheduler → + Add Task:

  1. 1
    Name the task

    Give it a clear name you'll recognize in the run history:

    Daily GitHub Issues Digest
  2. 2
    Set the cron expression

    Standard 5-field cron syntax:

    ┌───── minute (0-59)
    │ ┌─── hour (0-23)
    │ │ ┌─ day of month (1-31)
    │ │ │ ┌ month (1-12)
    │ │ │ │ ┌ day of week (0-6, Sun=0)
    │ │ │ │ │
    * * * * *

    Common patterns:

    ExpressionMeaning
    0 7 * * 1-57:00 AM every weekday
    0 9,15 * * 1-59 AM and 3 PM weekdays
    */30 * * * *Every 30 minutes
    0 8 * * MONEvery Monday at 8 AM
    0 17 * * FRIEvery Friday at 5 PM
    0 0 1 * *First day of every month at midnight

    The scheduler shows a human-readable preview as you type (e.g., "Every weekday at 7:00 AM").

  3. 3
    Write the task message

    What you want AI Partner to do — exactly as you'd type it in the chat:

    Chat mode example:

    What are the top 3 AI news stories from the last 24 hours?

    Goal mode example:

    Check all open GitHub issues in our repo labeled "bug".
    For any issue older than 7 days with no comments, add a comment asking for an update.
    Create a summary report and send it to my Telegram.
  4. 4
    Set the mode
    • Chat — fast, single-turn response; best for lookups and queries
    • Goal — full ReAct execution loop; best for tasks that involve tools, files, or messaging
    • Workflow — runs a saved workflow template on a schedule (set this via the Schedule button on the template card in the Workflows panel — see Scheduling recurring workflow runs)
  5. 5
    Enable and save

    Toggle Enabled on and click Save. The task will run at the next matching cron tick.


Run History

Every task run is logged. Click a task → History tab to see:

FieldDescription
Start timeWhen the task fired
End timeWhen it completed
Statuscompleted / failed / skipped / running
ResultThe agent's output (truncated; click to expand)
ErrorError message if failed

Live updates: while a task is running, its status in the History tab updates in real time via Socket.IO.


Resume prompts

If a goal-mode task times out mid-execution, the scheduler saves a resume prompt:

Task "Weekly Competitor Report" stopped at iteration 23/40
✅ 2 of 3 criteria passed
📁 2 artifacts created so far
⏱ Timed out after 10 minutes

[Resume from iteration 23] [Skip this run] [Disable task]

Click Resume from iteration 23 to pick up where it left off — the agent loads the prior context and continues from the last successful step.


Skipped runs

A run is marked skipped (not failed) when:

  • The server was offline when the task was scheduled to fire
  • The heartbeat cooldown blocked it (if configured)
  • A prior run of the same task was still in progress

Skipped runs appear in History with a ⏭ Skipped status and a reason.


Managing tasks

ActionHow
Enable / DisableToggle switch next to the task name — takes effect immediately
EditClick the pencil icon — modify name, cron, message, or mode
Run nowClick the ▶ play button — fires the task immediately, outside the schedule
DeleteClick the trash icon — removes the task and its run history

Examples

Daily standup summary
Name: Daily Standup Summary
Cron: 0 9 * * 1-5 (9 AM weekdays)
Mode: Goal
Message: Search our Slack #engineering channel for messages from yesterday.
Summarize what the team worked on, any blockers mentioned, and
decisions made. Send the summary to my Telegram.
Weekly invoice check
Name: Weekly Invoice Check
Cron: 0 10 * * MON (Monday 10 AM)
Mode: Goal
Message: Check Stripe for any invoices that are overdue (past due date).
For each, draft a follow-up email to the customer and send
to me via Telegram for approval.
Hourly stock alert
Name: Portfolio Alert
Cron: 0 9-15 * * 1-5 (every hour during market hours, weekdays)
Mode: Chat
Message: Check if RELIANCE.NS or INFY.NS has moved more than 2% from
yesterday's close. If yes, tell me. If no, say "All quiet."
Monthly report
Name: Monthly Performance Report
Cron: 0 9 1 * * (1st of every month at 9 AM)
Mode: Goal
Message: Pull last month's data from HubSpot (deals closed, pipeline value)
and Stripe (revenue, new customers, churn). Create an Excel report
with charts and send it to my Telegram.

Scheduling a workflow template

The easiest way to schedule a workflow is from the Workflows panel — hover a template card and click the calendar icon. This opens a schedule modal where you pick a frequency (daily, weekdays, weekly, hourly, or custom cron) and fill in the template's parameters. It registers a Task Scheduler task with mode: workflow automatically.

You can also create it manually here with mode: Workflow and a task message formatted as:

{
"templateId": "competitive-analysis",
"parameters": {
"niche": "SaaS project management tools",
"output_format": "docx"
}
}

Scheduled workflow runs appear in the History tab of the Workflows panel alongside manually triggered runs.


Task Scheduler vs. HEARTBEAT.md

Task SchedulerHEARTBEAT.md
ControlExplicit cron scheduleLLM-driven judgment each tick
What runsExactly what you wroteWhat the agent decides is useful
Best forPredictable, repeatable tasksOpportunistic, context-aware tasks
Edited viaTask Scheduler UISettings → Workspace → HEARTBEAT.md
Run historyFull per-run log with resumeheartbeat_logs table

Use both together: Task Scheduler for deterministic recurring jobs, Heartbeat for intelligent gap-filling.