install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/hive-scheduler" ~/.claude/skills/diegosouzapw-awesome-omni-skill-hive-scheduler && rm -rf "$T"
manifest:
skills/development/hive-scheduler/SKILL.mdsource content
Scheduler Jobs
Background jobs on cron schedules.
Location:
/src/scheduler/handlers/{jobName}.js
Template
import db from 'db'; export const handler = async () => { // Job logic }; export const cron = '0 * * * *'; // Every hour
Cron Patterns
┌─ minute (0-59) │ ┌─ hour (0-23) │ │ ┌─ day of month (1-31) │ │ │ ┌─ month (1-12) │ │ │ │ ┌─ day of week (0-6) * * * * *
| Pattern | Schedule |
|---|---|
| Every minute |
| Every 5 minutes |
| Every hour |
| Every 12 hours |
| Daily at midnight |
| Mondays at 9am |
Examples
Sync external data:
import db from 'db'; import moment from 'moment'; import externalApi from 'services/externalApi'; export const handler = async () => { const items = await externalApi.list({ updatedSince: moment().subtract(5, 'minutes').toDate(), }); for (const item of items) { await db.services.items.updateOne( { externalId: item.id }, (doc) => ({ ...doc, ...item }) ); } }; export const cron = '*/5 * * * *';
Mark overdue:
import db from 'db'; import moment from 'moment'; export const handler = async () => { await db.services.invoices.updateMany( { isPaid: { $ne: true }, isDue: { $ne: true }, dueOn: { $lt: new Date() }, }, (doc) => ({ ...doc, isDue: true }) ); }; export const cron = '0 */12 * * *';
Rules
- Export both
andhandlercron - Keep jobs idempotent (safe to re-run)
- Log progress for debugging