Scheduler0 Scheduler0 launched a scheduling platform that converts plain-English prompts into structured cron jobs, returning fields such as a cron expression, recurrence, start date and end date that developers then commit as recurring, event-anchored jobs. The platform offers real-time logs, job history, success rates and alerts, executes containers, webhooks, scripts or cloud functions across AWS, GCP and Azure, and ships a CLI plus REST API and Go, Python and JavaScript SDKs. Each job invocation carries a payload with the cron spec, IANA timezone and offset in seconds, retry budget and last execution status, with retries capped via a retryMax setting. Scheduler0 A Unified Platform for Cron Jobs. Temporal coordination infrastructure for agentic systems. Set up, run, and scale scheduled jobs — without the guesswork. Say goodbye to silent failures and timezone headaches. Scheduler0 helps modern teams schedule jobs across any cloud, monitor execution in real time, and recover automatically when things go wrong. Built for Developers Scheduler0 is more than a cron runner — it's your automation engine, built with DX and observability in mind. Full Observability Real-time logs, job history, success rates, and alerts. Flexible Execution Run containers, webhooks, scripts, or cloud functions. Cloud-Native & Multi-Cloud Execute jobs to AWS, GCP, Azure — or bring your own environment. Schedule with Natural Language Let your end users describe their scheduling needs in plain English. AI handles the complexity, you focus on building. js import { Client } from "@scheduler0/scheduler0-node-client"; const scheduler0 = Client.newAPIClient "https://api.scheduler0.com", "v1", process.env.SCHEDULER0 API KEY , process.env.SCHEDULER0 API SECRET , ; // 1. Your user just describes what they want — in plain English. const result = await scheduler0.createJobFromPrompt { prompt: "Email Acme a recap every Monday at 9am once the trial ends, for 8 weeks", purposes: "customer success", "trial engagement" , events: "trial ended" , // anchor timing to a real-world event recipients: "success@acme.com" , channels: "email", "slack" , timezone: "America/New York", } ; // 2. Scheduler0 resolves the intent into a structured schedule. const plan = result.jobs; plan.kind; // "DIGEST" plan.recurrence; // "every week" plan.cronExpression; // "0 9 1" plan.startDate; // trial ended + 7 days plan.endDate; // auto-expires 8 weeks later plan.subject; // "Your weekly Acme recap" // 3. Commit it as a real job — recurring, event-anchored, // time-boxed, retried, and scoped to a project + executor. await scheduler0.createJob { projectId: 123, timezone: plan.timezone ?? "America/New York", spec: plan.cronExpression, // recurring cron startDate: plan.startDate, // begins after the event endDate: plan.endDate, // stops on its own data: JSON.stringify { subject: plan.subject, channel: plan.channel, recipients: plan.recipients, delivery: plan.delivery, } , retryMax: 3, // auto-retry on failure status: "active", executorId: 42, // webhook, container, or fn createdBy: "ai-assistant", } ; Developer Experience You'll Love From CLI to UI to Terraform — schedule and manage jobs however you work. scheduler0-cli Create, test, and monitor jobs from your terminal. API & SDKs Automate everything with REST or native SDKs Go, Python, JS . One payload, any runtime Scheduler0 doesn't dictate what your job looks like. It delivers a small, predictable envelope — full scheduling context wrapped around a data blob that is entirely yours. Rich where it counts Every invocation arrives with the context you'd otherwise have to look up: which project and account it belongs to, the cron spec that fired it, the timezone and its offset, the retry budget, and when the job last ran and how that went. - spec the cron expression responsible for this run - timezone IANA zone plus timezoneOffset in seconds — no DST guesswork - retryMax how many attempts you get before the run is abandoned - lastExecution the previous run's timestamp and status, so handlers can self-heal after a miss { "job": { "projectId": 311, "spec": "0 2 ", "data": "{\"report\":\"nightly-revenue\",\"format\":\"parquet\",\"recipients\": \"finance@acme.com\" ,\"partition\":\"2026-08-01\"}", "executorId": 1, "startDate": "2026-07-01T02:00:00-04:00", "endDate": "2026-12-31T02:00:00-05:00", "lastExecutionDate": "2026-07-31T01:46:23-04:00", "timezone": "America/New York", "timezoneOffset": -14400, "retryMax": 3, "dateCreated": "2026-07-31T01:46:23-04:00", "accountId": 1, "status": "active" }, "lastExecutionDateTime": "2026-08-01T02:00:00-04:00", "lastExecutionStatus": "scheduled" } Your contract, not ours data is an opaque string carried through verbatim — put any JSON your handler wants in it. Scheduler0 stores and delivers it untouched. Same shape everywhere Webhook, cloud function, or a local executor running behind your firewall — every target receives the identical envelope, so handlers port between runtimes unchanged. Batched when it helps Turn on payload aggregation and jobs sharing an executor and fire time arrive in one call as {aggregated, jobs} — one round trip instead of N. { "aggregated": true, "jobs": { "job": { "id": 9134, "spec": "0 2 ", "data": "{…}" }, "lastExecutionDateTime": "2026-08-01T02:00:00-04:00", "lastExecutionStatus": "scheduled" }, { "job": { "id": 9135, "spec": "0 2 ", "data": "{…}" }, "lastExecutionDateTime": "2026-08-01T02:00:00-04:00", "lastExecutionStatus": "scheduled" } } Fire it now — don't wait for 2 a.m. POST /executors/{id}/test-invoke calls your executor immediately with a synthetic job. Nothing is created, nothing is logged, nothing is rescheduled. curl -X POST https://api.scheduler0.com/api/v1/executors/1/test-invoke \ -H "X-API-Key: $SCHEDULER0 API KEY" \ -H "X-Secret-Key: $SCHEDULER0 SECRET KEY" \ -H "X-Account-ID: $SCHEDULER0 ACCOUNT ID" \ -H "Content-Type: application/json" \ -d '{ "job": { "spec": "0 2 ", "timezone": "America/New York", "retryMax": 3, "data": "{\"report\":\"nightly-revenue\",\"partition\":\"2026-08-01\"}" }, "age": "24h", "executionTime": "2026-08-01T02:00:00-04:00" }' { "data": { "test": true, "executorId": 1, "executorType": "webhook url", "success": true, "startedAt": "2026-08-01T01:46:23.442404-04:00", "finishedAt": "2026-08-01T01:46:23.443657-04:00", "durationMs": 1, "payload": { "job": { "spec": "0 2 ", "data": "{\"report\":\"nightly-revenue\",\"partition\":\"2026-08-01\"}", "lastExecutionDate": "2026-07-31T01:46:23-04:00", "timezone": "America/New York", "retryMax": 3, "status": "active" }, "lastExecutionDateTime": "2026-08-01T02:00:00-04:00", "lastExecutionStatus": "scheduled" } }, "success": true } Time travel the job Set age to any Go duration and the synthetic job looks that old; set executionTime to control the run timestamp your handler sees. See what they got The response echoes the exact payload delivered, so you can diff what your endpoint received against what you expected — no logging required on your side. Wired up or not success plus timing tells you whether the executor accepted the call, and error explains it when it didn't — before you trust it to a schedule. Cloud-Native Architecture Scheduler0 is designed to be truly cloud-native. The core platform doesn't rely on cloud providers for data storage, using SQLite and Raft consensus instead. Built with Go High-performance, compiled language ensures reliability and speed across all environments. SQLite & Raft No cloud provider lock-in. Self-contained data storage with distributed consensus for high availability. Deploy Anywhere Run on AWS, GCP, Azure, on-premises, or any infrastructure that fits your needs. Deployment Options For teams that need more control, we offer deployment on your infrastructure with full support and management. Custom Deployment Deploy Scheduler0 on your own infrastructure. We work directly with your team to set up and configure the platform. - ✓ Deploy to your cloud or on-premises - ✓ Full control over data and infrastructure - ✓ Custom SLAs and configurations Managed Infrastructure Let us manage the infrastructure for you. We handle deployment, updates, and maintenance while you focus on building. - ✓ Fully managed deployment - ✓ Automatic updates and monitoring - ✓ Dedicated support and priority assistance Simple Pricing Free Tier $0 - 1,000 job executions per month - 1,000 AI classify requests per month - 1,000 AI prompt requests per month - Job payload up to 3kb - Up to 3 retries - 30 days executions logs retention - $5 free AI credits platform model, no key needed - Bring your own AI model key BYOK Paid /month /year Save $88/year 15% off - 100,000 job executions per month - 100,000 AI classify requests per month - 100,000 AI prompt requests per month - 10 seats for team members - Job payload up to 1mb - Up to 15 retries - 90 days execution logs retention - $5 free AI credits platform model, no key needed - Bring your own AI model key BYOK Teams Contact Us - Everything in Paid plan - Deploy to your infrastructure - Custom SLAs - Unlimited seats for team members - SSO & SAML - Group based access control - Dedicated support - Migration support - Priority feature requests - $5 free AI credits platform model, no key needed - Bring your own AI model key BYOK Frequently Asked Questions Everything you need to know about Scheduler0. Can't find an answer? Check the full docs https://docs.scheduler0.com . What is Scheduler0? Scheduler0 is a cloud-native platform for scheduling and executing cron jobs. Schedule recurring or one-off tasks across AWS, GCP, Azure, or your own infrastructure, monitor every execution in real time, and let Scheduler0 handle retries and recovery automatically — no cron infrastructure to manage. How does scheduling work? Jobs use a standard 6-field cron expression seconds, minutes, hours, day-of-month, month, day-of-week , shorthand macros like @hourly or @daily , and interval notation like @every 5m . Every job supports an IANA timezone, optional start and end dates, and a JSON payload passed to the executor at runtime. To schedule a one-off task, omit the cron spec and set only a startDate . What executor types are supported? Three executor types are available: - Webhook URL — Scheduler0 sends an HTTP request to your endpoint when the job fires. Supports GET, POST, PUT, and DELETE with an optional secret header. - Cloud Function — Scheduler0 invokes an AWS, GCP, or Azure function directly using the credentials you configure. - Local — The Scheduler0 CLI runs a shell command on your own machine. Jobs are pulled by the CLI and results are reported back automatically. How does AI scheduling work? The POST /api/v1/ai/prompt endpoint converts a plain-English description into a fully structured job configuration — including cron spec, timezone, and schedule kind. Each call costs 1 credit. You can bring your own model key BYOK and configure OpenAI, Anthropic, AWS Bedrock, or OpenRouter as the AI provider via the account AI settings. Live request/response examples are on the AI page https://scheduler0.com/ai . How does authentication work? API calls are authenticated with three headers: X-API-Key , X-Secret-Key , and X-Account-ID . You create credentials in the dashboard or via the API, and scope them to read , write , and/or execute permissions. Credentials expire after 90 days. Rotate by creating a new credential, updating your services, then archiving the old one. What are the plan limits? | Limit | Free | Paid $49/mo | |---|---|---| | Executions / month | 1,000 | 100,000 | | AI classify requests / month | 1,000 | 100,000 | | AI prompt requests / month | 1,000 | 100,000 | | Job payload size | 3 KB | 1 MB | | Max retries | 3 | 15 | | Log retention | 30 days | 90 days | For custom limits and dedicated infrastructure, see our Teams plan pricing . Can I self-host Scheduler0? Yes — self-hosting is available on the Paid or Teams plan . Deploy the Go binary on your own cloud or on-premises servers. Scheduler0 uses SQLite and Raft consensus — no cloud database or message broker required. You own all the data. Self-hosted deployments unlock admin APIs for account management, cluster operations, and automated backup and restore. See the self-hosting docs https://docs.scheduler0.com/docs/intro or contact us about managed deployment options https://scheduler0.com/demo-request . Which SDKs and languages are supported? Official clients are available for Go , Node.js / TypeScript , and Python . A CLI is also provided to support terminal workflows and local executor management. Terraform support is available for infrastructure-as-code setups. All clients support the full REST API; the full OpenAPI specification is published at api-reference.scheduler0.com https://api-reference.scheduler0.com .