🎯

cronlytic

🎯Skill

from vm0-ai/vm0-skills

VibeIndex|
What it does

Schedules and manages automated HTTP requests and webhooks using cron-style job expressions via a simple API.

πŸ“¦

Part of

vm0-ai/vm0-skills(138 items)

cronlytic

Installation

Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add vm0-ai/vm0-skills
Install PluginInstall plugin from marketplace
/plugin install notion@vm0-skills
Install PluginInstall plugin from marketplace
/plugin install slack-webhook@vm0-skills
git cloneClone repository
git clone https://github.com/vm0-ai/vm0-skills.git
πŸ“– Extracted from docs: vm0-ai/vm0-skills
12Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Cronlytic cron job scheduler API via curl. Use this skill to create, manage, pause/resume scheduled HTTP requests and webhook automation.

Overview

# 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

  1. Sign up at [Cronlytic](https://www.cronlytic.com/signup)
  2. Go to Dashboard β†’ API Keys β†’ Generate New API Key
  3. Copy your API Key and User ID

```bash

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

> 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

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

```

Response: {"message": "pong"}

---

2. Create a Cron Job

Create a scheduled job to call a webhook.

Write to /tmp/cronlytic_request.json:

```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

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}'

```

---

3. Create GET Request Job

Simple health check every 5 minutes.

Write to /tmp/cronlytic_request.json:

```json

{

"name": "health-check",

"url": "https://api.example.com/health",

"method": "GET",

"headers": {},

"body": "",

"cron_expression": "/5 *"

}

```

Then run:

```bash

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}'

```

---

4. List All Jobs

Get all your scheduled jobs:

```bash

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}'

```

---

5. Update a Job

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

Write to /tmp/cronlytic_request.json:

```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

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}'

```

---

6. Pause a Job

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

```bash

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}"'

```

---

7. Resume a Job

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

```bash

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}"'

```

---

8. Get Job Logs

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

```bash

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}'

```

---

9. Delete a Job

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

```bash

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

  1. Ping first: Call /ping to warm up the API (Lambda cold start)
  2. All fields required: When creating/updating, provide all fields
  3. Valid cron only: Use standard 5-field cron format
  4. Job names: Use alphanumeric with hyphens/underscores only
  5. Check logs: Use the logs endpoint to debug failed jobs
  6. Dashboard: Use https://www.cronlytic.com/dashboard for visual management
  7. Plan limits: Free tier has job limits - upgrade if needed

More from this repository10