Skip to main content
Schedo.dev is a modern cloud-based job scheduling platform that solves the common challenges of traditional cron jobs. It provides a reliable, scalable, and developer-friendly way to schedule and manage recurring tasks without the operational overhead.

Why Schedo.dev?

Traditional cron jobs come with several challenges that make them difficult to use in modern cloud environments:

DevOps Complexity

Traditional crons require manual configuration through crontab, YAML, or system-level scripts

No Built-in Reliability

Lack of ack/nack mechanisms, retries, and error tracking requires custom implementation

Infrastructure Lock-in

Cron logic tied to specific platforms (K8s, EC2) makes migration and scaling difficult effectively locking you to a platform

Scaling Issues

Preventing multiple instances from being executed at the same time requires complex orchestration to prevent duplicates and race conditions

Key Features

No DevOps required - just write your job logic and let Schedo handle the rest:
import {
  SchedoSDK,
  ExecutionInterval,
  withApiKey,
} from "@useschedo/node";

const sdk = new SchedoSDK(
  withApiKey("YOUR_API_KEY"),
);

schedo.defineJob(
  'daily-cleanup',
  '0 0 * * *',
  async (ctx) => {
    // Your job logic here
    return { processed: true };
  }
);

// start schedo instance
schedo.start();
Everything you need for production workloads:
  • Automatic retries with configurable backoff
  • Acknowledgment/non-acknowledgment handling
  • Comprehensive error tracking
  • Duplicate run prevention
Run your jobs anywhere:
  • Works across any cloud provider
  • No infrastructure lock-in
  • Easy migration between environments
  • Consistent behavior everywhere
Full visibility into your jobs:
  • Real-time execution logs
  • Performance metrics
  • Status monitoring
  • Failure alerts

Getting Started

Install our SDK:
pnpm add @useschedo/node
Connect to Schedo.dev:
import { SchedoSDK, withApiKey, ExecutionInterval } from '@useschedo/node';

const schedo = new SchedoSDK(withApiKey(process.env.SCHEDO_API_KEY));

schedo.defineJob('daily-cleanup',
      ExecutionInterval.EveryMinute, // or cron expression
      async (ctx) => {
        // Your job logic here
        return { processed: true };
      }
);


schedo.start();

Next Steps

I