Deploy Scheduled Jobs
Write a script. Set a schedule. We run it automatically. No cron syntax to memorize.
Perfect For
Database Backups
Run backups every night without thinking about it
Email Campaigns
Send newsletters and digest emails on schedule
Cleanup Tasks
Remove old data, expire sessions, prune logs automatically
Report Generation
Generate and send reports daily, weekly, or monthly
How It Works
-
1
Write your script
Just a normal Node.js, Python, or Go script. No special setup.
-
2
Push to Tokay
git push tokaywe handle the rest. -
3
Set the schedule
Pick when to run it from the dashboard. "Every day at 2am" is one click.
-
4
It runs automatically
We run your job on schedule and send you logs. That's it.
Scheduling Made Simple
Set your schedule in plain English from the dashboard. No cron syntax to remember.
Every day at 2:00 AM
Perfect for nightly backups and data processing
Every 15 minutes
Keep data fresh with frequent updates
Every Monday at 9:00 AM
Send weekly reports and summaries
First day of every month
Generate monthly reports and invoices
Just Write Your Script
Focus on your business logic. We handle the scheduling infrastructure.
Node.js Backup Job
// backup.js - Run this daily at 2am from the dashboard
const { Client } = require('pg');
const AWS = require('aws-sdk');
async function run() {
console.log('Starting backup...');
const db = new Client({ connectionString: process.env.DATABASE_URL });
await db.connect();
const data = await db.query('SELECT * FROM users');
const backup = JSON.stringify(data.rows);
const s3 = new AWS.S3();
await s3.putObject({
Bucket: 'my-backups',
Key: `backup-${new Date().toISOString()}.json`,
Body: backup
}).promise();
console.log('Backup complete!');
await db.end();
}
run().catch(console.error);
Python Email Digest
# digest.py - Schedule this for Monday mornings
import smtplib
from email.mime.text import MIMEText
def send_digest():
print("Sending weekly digest...")
msg = MIMEText("""
Your weekly summary:
- 42 new signups
- 128 orders
- $12,450 revenue
""")
msg['Subject'] = 'Weekly Digest'
msg['From'] = 'digest@yourdomain.com'
msg['To'] = 'team@yourdomain.com'
smtp = smtplib.SMTP(os.environ['SMTP_HOST'])
smtp.send_message(msg)
print("Digest sent!")
if __name__ == '__main__':
send_digest()
Go Cleanup Task
// cleanup.go - Run this nightly
package main
import (
"database/sql"
"log"
"time"
)
func main() {
log.Println("Starting cleanup...")
db, _ := sql.Open("postgres", os.Getenv("DATABASE_URL"))
defer db.Close()
// Delete old sessions
cutoff := time.Now().AddDate(0, 0, -30)
result, _ := db.Exec(
"DELETE FROM sessions WHERE created_at < $1",
cutoff,
)
rows, _ := result.RowsAffected()
log.Printf("Cleaned up %d sessions", rows)
}
That's it. Push your script, set the schedule in the UI, and forget about it.
What We Handle For You
Reliable Scheduling
Your jobs run on the schedule you set. Predictable timing, no drift.
Error Handling
If a job fails, we log it and alert you. You see exactly what went wrong.
Complete Logs
Every job run is logged. See exactly what happened and when.
Timezone Aware
Set your timezone once. Jobs run when you expect them to, no matter where you are.
Stop babysitting cron.
Set the schedule. We run the jobs. Logs are there when something breaks.