Periodic Agent jobs. On time, every time.
Describe the schedule once. SandBase triggers each Agent run, keeps the execution record, and delivers the result where it belongs.
Live scheduleEnabled
Next run09:00
Tomorrow · Asia/Tokyo
- 01Research sourcesExa · 24 resultsDone
- 02Analyze changesMarket Intelligence AgentReady
- 03Deliver the briefingNotion · #market-updatesQueued
- Last 30 days
- 22 runs
- Delivered
- 100%
- Sets the cadence
- 1 sentence
- Recorded per trigger
- 1 run
- Code, console, or API
- 3 ways
Set an Agent’s run time in one sentence.
No cron to learn. Describe when the work should happen, and SandBase generates the cadence, the timezone, and the next run.
Describe the run time
Every weekday at 9 AMGenerate schedule
- 01 Describe
- 02 Generate
- 03 Confirm
Schedule generatedReady
- Agent
- Market Intelligence Agent
- Cadence
- Every weekday at 9 AM
- Cron
- 0 9 * * 1-5
- Timezone
- Asia/Tokyo
Next runs
- 01Mon · 09:00
- 02Tue · 09:00
- 03Wed · 09:00
Schedule enabledSave schedule
One task, as many schedules as it needs.
The Agent defines the work, the inputs, and what done looks like. Each Schedule sets the cadence, timezone, environment, and customer. Every trigger creates its own Agent run.
Market Intelligence Agent
Version 12 · Production
- Job
- Research market changes
- Input
- Market · Region · Sources
- Result
- Briefing with cited sources
Defines what done looks like
1 Agent · many schedules
- 01Tokyo daily briefingWeekdays · 09:00 · Asia/TokyoEnabled
- 02London weekly reviewMondays · 08:30 · Europe/LondonEnabled
- 03Customer watchEvery 6 hours · customer_2048Enabled
Defines when, and for whom
Each trigger creates a run
Run #1082Completed
Run #1083Queued
Run #1084Next · 09:00
Result, trace, and cost are recorded for each run.
Not code on a timer. Business work that keeps getting done.
Pick a scenario to see how SandBase chains data, Agent judgment, and team action into a service that runs for the long term and can be audited.
- Stripe
- HubSpot
- Slack
- Runs
- Weekdays · 08:30 · customer timezone
- Delivers
- Renewal risk list, by priority
- Business value
- Reach high-risk customers earlier
schedule.yaml
agent: renewal-riskschedule: weekdays 08:30timezone: customer.timezonealert: risk_score >= 0.72Next runTomorrow · 08:30Full run history included
Define the task once. Run it on different rhythms.
The Agent decides what to do; the Schedule decides when, for whom, and where it runs. Keep fixed jobs in version control, and adjust business schedules anytime from the console or the API.
Versioned schedule
Managed with the Agent configuration
For internal research, monitoring, and reporting. Cadence, timezone, and Agent version live in one reproducible configuration.
Read the Schedules guideschedule.tsVersionedschedule({ agent: "market-intelligence", cron: "0 9 * * 1-5", timezone: "Asia/Tokyo", version: "v12", });Every weekday · 09:00 Tokyo
Console schedule
Change the timing without redeploying
Create, enable, pause, and edit Schedules in the console. Plain language becomes a clear cron expression and next run time.
Open SchedulesSchedule createdDraftAgentRenewal Risk AgentDescribe the rhythmCheck renewal risk every 6 hoursGenerateCron0 */6 * * *TimezoneUTCValid schedule · Next run 18:00
API / SDK schedule
Create a schedule for each customer
Your product binds a cadence, a timezone, and an external id to each account through the API or SDK, without creating the same plan twice.
View the API referencecreate-schedule.tsSDKawait schedules.create({ agent: "renewal-risk", cron: "0 0 * * *", timezone: customer.timezone, externalId: customer.id, deduplicationKey: `renewal-${customer.id}`, });One Agent · many customer schedules
Schedules trigger the work. Monitoring shows every result.
Each trigger becomes a trackable Agent run. Follow the steps live, get alerted when something fails, and find the cause in the same trace.
- Runtime monitoringLive
- market-intelligence()Running00:42
- renewal-risk()FailedInvestigate
- daily-brief()Completed01:18
- customer-watch()Queued—
Live status
See the state of every job first.
Running, queued, completed, and failed share one status language, so the team knows which job needs attention before opening a log.
LiveEnvironment-awareHistory
- Run #1082 · Market intelligenceExecuting
TriggerSearchAnalyzeDeliver
- schedule.trigger
- exa.search
- model.reason
- notion.create
Live trace4 steps · 3.8s · $0.024
Execution trace
Follow the Agent’s actual path, step by step.
Model calls, tool actions, retries, and output line up on one timeline, so time and bottlenecks are not buried in scattered logs.
- New alertEnabled
SlackEmailWebhook
Channel#agent-operations
Alert when
- An Agent run fails
- The retry limit is reached
Environment
- Production
- Staging
Test alert delivered · 2s ago
Alerts
Tell the right people when something fails.
Send email, Slack, or webhook alerts by environment and event. Each alert links straight to its run, not just to “something went wrong.”
- Run historyFailed · 3
Search runsStatus · FailedProduction
Run Agent Duration Status #1087 renewal-risk 00:18 Failed #1083 market-watch 01:42 Failed #1071 daily-brief 00:34 Failed Investigate
Filter the failures and pick up from the failed step.
Filter runs by status, Agent, environment, and time. The failure reason, the input, and the retry history stay in the same record.
The schedule triggers the runs. Monitoring confirms the work is done.
See the models, tools, deliverables, cost, and anomalies of every run, then take what you learn back to the Agent.
