cronlytic

安装量: 55
排名: #13591

安装

npx skills add https://github.com/vm0-ai/vm0-skills --skill cronlytic

Cronlytic

Use Cronlytic via direct curl calls to schedule and manage cron jobs that trigger HTTP requests/webhooks.

Official docs: https://www.cronlytic.com/api-documentation

When to Use

Use this skill when you need to:

Schedule recurring HTTP requests (webhooks, API calls) Automate background tasks without managing servers Create cron jobs with standard 5-field expressions Pause/resume jobs dynamically Monitor job execution via logs Prerequisites Sign up at Cronlytic Go to Dashboard → API Keys → Generate New API Key Copy your API Key and User ID export CRONLYTIC_API_KEY="your-api-key" export CRONLYTIC_USER_ID="your-user-id"

Base URL https://api.cronlytic.com/prog/

Important: When using $VAR in a command that pipes to another command, wrap the command containing $VAR in bash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.

bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"' | jq .

How to Use 1. Health Check (Ping)

Check if API is available (no auth required):

bash -c 'curl -s -X GET "https://api.cronlytic.com/prog/ping"'

Response: {"message": "pong"}

  1. Create a Cron Job

Create a scheduled job to call a webhook.

Write to /tmp/cronlytic_request.json:

{ "name": "daily-backup", "url": "https://api.example.com/backup", "method": "POST", "headers": {"Authorization": "Bearer token123"}, "body": "{\"type\": \"full\"}", "cron_expression": "0 2 * * *" }

Then run:

bash -c 'curl -s -X POST "https://api.cronlytic.com/prog/jobs" -H "X-API-Key: ${CRONLYTIC_API_KEY}" -H "X-User-ID: ${CRONLYTIC_USER_ID}" -H "Content-Type: application/json" -d @/tmp/cronlytic_request.json' | jq '{job_id, name, status, next_run_at}'

  1. Create GET Request Job

Simple health check every 5 minutes.

Write to /tmp/cronlytic_request.json:

{ "name": "health-check", "url": "https://api.example.com/health", "method": "GET", "headers": {}, "body": "", "cron_expression": "/5 * * * " }

Then run:

bash -c 'curl -s -X POST "https://api.cronlytic.com/prog/jobs" -H "X-API-Key: ${CRONLYTIC_API_KEY}" -H "X-User-ID: ${CRONLYTIC_USER_ID}" -H "Content-Type: application/json" -d @/tmp/cronlytic_request.json' | jq '{name, status}'

  1. List All Jobs

Get all your scheduled jobs:

bash -c 'curl -s -X GET "https://api.cronlytic.com/prog/jobs" -H "X-API-Key: ${CRONLYTIC_API_KEY}" -H "X-User-ID: ${CRONLYTIC_USER_ID}"' | jq '.[] | {job_id, name, status, cron_expression, next_run_at}'

  1. Update a Job

Update an existing job (all fields required). Replace with the actual job ID:

Write to /tmp/cronlytic_request.json:

{ "name": "daily-backup-v2", "url": "https://api.example.com/backup/v2", "method": "POST", "headers": {"Authorization": "Bearer newtoken"}, "body": "{\"type\": \"incremental\"}", "cron_expression": "0 3 * * *" }

Then run:

bash -c 'curl -s -X PUT "https://api.cronlytic.com/prog/jobs/" -H "X-API-Key: ${CRONLYTIC_API_KEY}" -H "X-User-ID: ${CRONLYTIC_USER_ID}" -H "Content-Type: application/json" -d @/tmp/cronlytic_request.json' | jq '{job_id, name, status, next_run_at}'

  1. Pause a Job

Stop a job from executing. Replace with the actual job ID:

bash -c 'curl -s -X POST "https://api.cronlytic.com/prog/jobs//pause" -H "X-API-Key: ${CRONLYTIC_API_KEY}" -H "X-User-ID: ${CRONLYTIC_USER_ID}"'

  1. Resume a Job

Resume a paused job. Replace with the actual job ID:

bash -c 'curl -s -X POST "https://api.cronlytic.com/prog/jobs//resume" -H "X-API-Key: ${CRONLYTIC_API_KEY}" -H "X-User-ID: ${CRONLYTIC_USER_ID}"'

  1. Get Job Logs

View execution history (last 50 entries). Replace with the actual job ID:

bash -c 'curl -s -X GET "https://api.cronlytic.com/prog/jobs//logs" -H "X-API-Key: ${CRONLYTIC_API_KEY}" -H "X-User-ID: ${CRONLYTIC_USER_ID}"' | jq '.logs[] | {timestamp, status, response_code, response_time}'

  1. Delete a Job

Permanently delete a job and its logs. Replace with the actual job ID:

bash -c 'curl -s -X DELETE "https://api.cronlytic.com/prog/jobs/" -H "X-API-Key: ${CRONLYTIC_API_KEY}" -H "X-User-ID: ${CRONLYTIC_USER_ID}"'

Cron Expression Format

Standard 5-field cron: minute hour day month day-of-week

┌───────────── minute (0-59) │ ┌───────────── hour (0-23) │ │ ┌───────────── day of month (1-31) │ │ │ ┌───────────── month (1-12) │ │ │ │ ┌───────────── day of week (0-6, Sun=0) │ │ │ │ │


Common Examples Expression Description /5 * * * * Every 5 minutes 0 * * * * Every hour at minute 0 0 9 * * * Daily at 9:00 AM 0 9 * * 1-5 Weekdays at 9:00 AM 0 0 1 * * First day of month at midnight 30 14 * * 0 Sunday at 2:30 PM 0 /6 * * * Every 6 hours Job Status Values Status Description pending Scheduled, waiting for next_run_at paused Paused, won't execute success Last execution succeeded failed Last execution failed quota_reached Skipped due to plan quota Create Job Parameters Field Type Required Description name string Yes Job name (1-50 chars, alphanumeric/-/) url string Yes Target URL (HTTP/HTTPS) method string Yes HTTP method (GET, POST, PUT, DELETE) headers object Yes Request headers (can be {}) body string Yes Request body (can be "") cron_expression string Yes 5-field cron expression Job Name Rules Only letters, numbers, hyphens (-), underscores () Length: 1-50 characters Regex: ^[a-zA-Z0-9_-]+$

Valid: my-job, test_job_1, API-Health-Check Invalid: my job (space), test@job (@), api.health (.)

Response Fields Field Description job_id Unique job identifier name Job name url Target URL method HTTP method status Current job status cron_expression Schedule expression next_run_at Next scheduled execution (ISO timestamp) created_at Creation timestamp Guidelines Ping first: Call /ping to warm up the API (Lambda cold start) All fields required: When creating/updating, provide all fields Valid cron only: Use standard 5-field cron format Job names: Use alphanumeric with hyphens/underscores only Check logs: Use the logs endpoint to debug failed jobs Dashboard: Use https://www.cronlytic.com/dashboard for visual management Plan limits: Free tier has job limits - upgrade if needed

返回排行榜