Frona has two ways to run work on a schedule: scheduled tasks and heartbeats. They serve different purposes.
| Scheduled tasks | Heartbeats | |
|---|---|---|
| What it does | Runs a specific task at specific times | Wakes the agent up at regular intervals |
| Instructions | Defined when you create the schedule | Written by the agent to a HEARTBEAT.md file in its workspace |
| Best for | Reports, briefings, recurring jobs | Ongoing monitoring, watching for changes |
| Example | "Every Monday, compile a weekly report" | "Keep an eye on my project and let me know if anything needs attention" |
Scheduled tasks
Ask an agent in chat to set up a recurring task:
- "Every weekday at 9 AM, summarize overnight news and my pending items"
- "Every Monday morning, compile a weekly status report"
- "Check the status of my deployments every hour"
The agent creates a scheduled task that runs automatically at the specified times. Just describe the schedule in natural language.
How it works
- You ask an agent to schedule a recurring task
- The agent creates the schedule with your instructions
- The scheduler checks for due tasks every 60 seconds
- When a task is due, it creates a session for the assigned agent
- The agent runs the task and stores the results
- The next run time is calculated automatically
Managing scheduled tasks
View schedules. Ask the agent: "What tasks do I have scheduled?" It shows all active schedules with their next run times.
Cancel a schedule. Ask the agent: "Cancel the daily briefing" or "Stop the deployment monitoring."
Modify a schedule. Ask the agent to cancel the old one and create a new one: "Change the weekly report to run on Fridays instead of Mondays."
Heartbeats
Heartbeats are different from scheduled tasks. Instead of running a fixed set of instructions, a heartbeat wakes the agent up at regular intervals to read a HEARTBEAT.md checklist in its workspace and autonomously decide what to do.
The key difference: a scheduled task runs the same instruction every time. A heartbeat gives the agent a checklist to reason about. The agent can update its own checklist, skip items that don't apply, and adapt its behavior over time.
How heartbeats work
- The agent writes a checklist to
HEARTBEAT.mdin its workspace (this must exist before enabling a heartbeat) - The agent sets its own heartbeat interval using the
set_heartbeattool - At each interval, the agent wakes up, reads
HEARTBEAT.md, and acts on the checklist - All heartbeat runs share the same persistent chat, so the agent has context from previous runs
- The agent can update
HEARTBEAT.mdduring a run to change what it does next time
Setting up a heartbeat
Ask the agent: "Keep an eye on my project and let me know if anything needs attention."
The agent decides what to watch for, writes its checklist to HEARTBEAT.md, sets its own heartbeat interval, and starts waking up periodically.
When to use heartbeats vs. scheduled tasks
- Use scheduled tasks when you know exactly what needs to happen and when. "Every Monday at 9 AM, send a weekly report."
- Use heartbeats when the agent needs to continuously monitor something, reason about changing conditions, or evolve its behavior over time.
Example: daily morning briefing
You: "Every weekday at 8 AM, check the latest tech news and summarize the top 5 stories for me."
What happens:
- The agent creates a scheduled task for weekdays at 8 AM
- Every weekday at 8 AM, the Researcher wakes up
- It searches for recent tech news, reads articles, and creates a summary
- The summary is available in your chat
Next steps
- Delegation & Tasks. How agents work together on tasks
- Agent Workspaces. Where scheduled task outputs and heartbeat files live
- Creating & Configuring Agents. Build agents specifically for scheduled work