CLI

Hybrid local and cloud scheduling from one CLI

rrulenet is the hybrid CLI for the ecosystem. It can run recurring jobs locally, manage cloud schedules on rrule.net, and keep the same recurrence model across both.

Install

The CLI is published as @rrulenet/cli and requires Node.js 24 or later.

npm install -g @rrulenet/cli
rrulenet --help

Local mode

Run recurring commands on your own machine with SQLite-backed state, retry/backoff behavior, and service templates for launchd and systemd-user.

  • SQLite local persistence by default
  • Continuous runner with retry/backoff and crash recovery
  • Service template generation for launchd and systemd-user

Cloud mode

Manage schedules hosted on rrule.net from the terminal, including list, pause, resume, and remove workflows with support for short ids.

  • Manage schedules on the hosted platform
  • Use API tokens to access your cloud schedules
  • Accept full ids and unique short-id prefixes

Hybrid workflows

The CLI exists for situations where local and hosted scheduling need to coexist. Use one recurrence language, one operator workflow, and one mental model for both.

Local-only automation

Use the CLI as a local recurrence runner when jobs should stay on your machine or within your own environment.

Cloud-first operations

Use the CLI as an operator interface for rrule.net when the schedules themselves live on the hosted platform.

Mixed local + cloud

Use one command surface across local jobs and hosted schedules while keeping a single recurrence vocabulary.

Examples

Run a local recurring job

rrulenet local add "FREQ=DAILY;BYHOUR=9" --timezone Europe/Paris -- \
  ./scripts/daily-report.sh

rrulenet local run

Manage a cloud schedule on rrule.net

rrulenet config set cloud.api_url https://api.rrule.net
rrulenet config set cloud.token <your_api_token>

rrulenet cloud add "FREQ=WEEKLY;BYDAY=MO;BYHOUR=9" \
  --timezone Europe/Paris \
  --webhook https://example.com/webhooks/report

rrulenet cloud list