Kronos
A lightweight cron job scheduler with webhook notifications, designed for easy task automation and flexible scheduling
Install / Use
/learn @ostafen/KronosREADME
Kronos - Cron Job Webhook Scheduler
Overview
Kronos is a powerful cron job webhook scheduler that allows you to define and manage scheduled tasks with ease. Utilizing a simple JSON-like DSL, Kronos makes it easy to schedule webhooks and automate workflows seamlessly.
Features:
-
:sparkles: Simple DSL: Define your workflows using a clear, JSON-like syntax.
-
:zap: REST API Integration: Schedule and manage webhooks easily.
-
:rocket: Distributed Execution: Run tasks across multiple environments.
-
:alarm_clock: Flexible Scheduling: Create complex scheduling patterns with cron expressions.

Build (Go 1.9+)
Run the following command
foo@bar$ make build
to build an executable which will be output to the bin subfolder.
Yaml file configuration
logging:
level: INFO
format: JSON
port: 9175
store:
path: "/path/to/db/file" # default is kronos.bolt
Docker compose configuration
services:
kronos:
image: ghcr.io/ostafen/kronos
ports:
- '9175:9175'
environment:
- PORT=9175 # configuration properties can be overridden through environment variables
- STORE_PATH=/data/kronos.bolt
volumes:
- ./data:/data
Registering a periodic schedule
To start getting some webhook notifications, let's add a new schedule which will be notified every minute:
curl -X POST localhost:9175/schedules -H 'Content-Type: application/json' -d \
'{
"title": "sample-schedule",
"description": "a sample schedule description",
"cronExpr": "0/1 * * * *",
"url": "your-webhook-address",
"isRecurring": true,
"startAt": "2023-02-19T11:34:00Z",
"endAt": "2023-02-19T11:38:00Z"
}'
On success, the response of the server will be similar to the following:
{
"id": "1e6d146b-e3b7-4e5c-b7ce-b7b2860f461b",
"title": "sample-schedule",
"status": "not_started",
"description": "a sample schedule description",
"cronExpr": "0/1 * * * *",
"url": "your-webhook-address",
"metadata": null,
"isRecurring": true,
"createdAt": "2023-02-19T12:32:30.788562107+01:00",
"runAt": "0001-01-01T00:00:00Z",
"startAt": "2023-02-19T11:34:00Z",
"endAt": "2023-02-19T11:38:00Z",
"nextScheduleAt": "2023-02-19T11:34:00Z",
}
The above table contains the full list of supported fields:
| Parameter | Required | Description | |-------------|:------------------:|:------------| | title | true | the name of your schedule. It must be unique. | | description | false | an optional description of your schedule. | | isRecurring | false | whether the schedule is recurring or not. | | cronExpr | if isRecurring = true | cron expression for recurring schedules. | | url | true | webhook notification endpoint. | | runAt | if isRecurring = false | for non-recurring schedules, it indicates the instant the schedule will be triggered at. | | startAt | false | UTC start date of the schedule. Must be equal to runAt if isRecurring = false. | | endAt | false | UTC end date of the schedule. Must be equal to runAt if isRecurring = false. | | metadata | false | optional metadata which will be sent when triggering a webhook. |
REST API
- POST
/schedules- Register a new schedule - GET
/schedules/{id}- Get details about an already existing schedule - DELETE
/schedules/{id}- Delete a schedule - POST
/schedules/{id}/pause- Pause an active schedule - POST
/schedules/{id}/resume- Resume a paused schedule - POST
/schedules/{id}/trigger- Immediately trigger a notification for a given schedule
Contact
Stefano Scafiti @ostafen
License
Kronos source code is available under the MIT License.
Related Skills
xurl
344.1kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
diffs
344.1kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
kubeshark
11.8kCluster-wide network observability for Kubernetes. Captures L4 packets, L7 API calls, and decrypted TLS traffic using eBPF, with full Kubernetes context. Available to AI agents via MCP and human operators via dashboard.
clearshot
Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.
