Migration Guide
This guide helps you migrate your existing scheduled tasks to Recuro from crontab, EasyCron, cron-job.org, and other scheduling tools.
Moving from crontab
Step 1: Inventory your crons
List all existing cron entries:
crontab -lFor each entry, note the cron expression, command, and purpose.
Step 2: Convert to HTTP endpoints
Crontab runs shell commands. Recuro fires HTTP requests. For each cron task, you need an HTTP endpoint that performs the equivalent action.
Before (crontab):
0 2 * * * /usr/bin/php /var/www/app/artisan sync:dataAfter (Recuro): Create an endpoint in your app that triggers the same logic:
POST https://api.yourapp.com/tasks/sync-dataThen create a Recuro cron:
curl -X POST https://app.recurohq.com/api/crons \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Data Sync", "url": "https://api.yourapp.com/tasks/sync-data", "method": "POST", "cron_expression": "0 2 * * *", "timeout_seconds": 120 }'Step 3: Run in parallel, then cut over
- Create all Recuro crons in a paused state (
is_active: false) - Activate them one by one alongside the existing crontab entries
- Monitor both systems for a few cycles
- Once confirmed, remove the crontab entries
Moving from EasyCron or cron-job.org
These services already fire HTTP requests, so migration is straightforward:
Step 1: Export your schedule
Note for each cron:
- URL
- HTTP method
- Cron expression
- Any headers or body
- Timeout setting
Step 2: Recreate in Recuro
For each cron, use the API or dashboard:
curl -X POST https://app.recurohq.com/api/crons \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Health Check", "url": "https://api.yourapp.com/health", "method": "GET", "cron_expression": "*/5 * * * *", "timeout_seconds": 30, "alert_threshold": 3 }'Step 3: Set up what the old tool lacked
Take advantage of features your previous tool may not have had:
- Success assertions — Verify response content, not just status codes
- Webhook signing — Authenticate requests to your endpoints
- Completion callbacks — Get notified after each execution
- Dead-letter queue — Automatically retry and capture failed queue jobs
- Team collaboration — Invite your team with role-based access
Migration checklist
- Inventory all existing scheduled tasks
- Create HTTP endpoints for any command-based tasks
- Set up a Recuro team and generate an API token
- Create all crons in Recuro (start paused if running in parallel)
- Configure alert thresholds on critical crons
- Set up your notification channel (email, Slack, or Discord)
- Generate a signing secret and implement verification on your endpoints
- Activate crons and monitor for a few cycles
- Disable or remove crons from the old system
- Set up queues for any one-off job processing needs
Next steps
- Quick Start — Create your first cron in 2 minutes
- Creating a Cron Schedule — Detailed walkthrough
- Webhook Authentication — Set up signature verification