Denly

Schedule coding agent tasks: daily, weekly or monthly, on your own machine

Updated 2026-10-18

A schedule creates an ordinary task on a cadence, starting at planning or straight at build according to its settings. The cadence grammar is three fixed shapes rather than cron: daily@09:00, weekly@mon.09:30, monthly@1.06:00, each with an optional timezone.

Denly is a control plane for coding agents (Claude Code, Codex, Cursor, Grok Build, Antigravity) that run on your own machines using your vendor subscription or API key. It manages tasks, plans and reviews across projects; Git-backed tasks can open pull requests, while no-Git projects end with a review of local changes. A schedule is that same flow on a timer.

The cadence grammar

Three shapes, no cron expressions:

ShapeExampleFires
daily@HH:MMdaily@09:00Every day at 09:00
weekly@DOW.HH:MMweekly@mon.09:30Every Monday at 09:30. DOW is one of mon, tue, wed, thu, fri, sat, sun
monthly@D.HH:MMmonthly@1.06:00The 1st of each month at 06:00. D is 1 to 28, so every month has the day

Each shape takes an optional IANA timezone after a ~: weekly@mon.09:00~Asia/Jerusalem means 09:00 on the wall clock there, across daylight-saving changes. Without the suffix the time is UTC. The next run is stored and compared in UTC either way, and the dashboard shows you the next firing instant while you are still typing the cadence.

What a schedule creates

An ordinary task, inserted at one of two starting stages:

  • Plan first – the agent plans, and the task waits at the approval gate for a person. Use this for anything that touches product code.
  • Straight to build – no plan, no gate. Use this for gate-less chores where the instruction is already exact.

The server copies the title and body verbatim when it fires, so a ciphertext envelope survives the firing path unread. The current dashboard encrypts schedule titles and bodies before create or update and blocks writes while the workspace key is locked. Older clients and the runner/server failure paths described in the encryption guide still need separate protection; optional E2E is not a collection opt-out.

The two skip rules

  1. The previous task is still open. Denly skips the occurrence rather than stacking a second task on top of one nobody has reviewed. The cadence still advances, so a skipped week is a skipped week and never a backlog of retries.
  2. The project is frozen by its plan. The schedule stays scheduled and resumes the moment the project unlocks.

A Run now action on each schedule fires one task immediately without touching the cadence, which is how you test a schedule without waiting a week for it. It reports back if the previous task is still open, rather than firing anyway.

Create one

  1. Open the project's schedules panel. Creating and editing schedules is an owner or admin action.
  2. Write the title and body exactly as you would write a task. This text is what the agent receives on every firing.
  3. Enter the cadence. The panel shows the next firing instant as you type, so a wrong timezone is visible before you save.
  4. Choose the starting stage, the assignee, and the runtime and model.
  5. Save, then use Run now once to see the task it produces.

The trade-off

Firing happens on Denly's side, so a schedule fires whether or not your machine is awake. The work does not: the task waits in the queue until an eligible runner is online to claim it. A 06:00 schedule on a laptop that opens at 09:00 is a task that starts at 09:00.

Read next

Flows, reviews, gates & schedules · Tasks & backlog · A coding agent pull request workflow you can inspect and reproduce · Manage coding agents across projects without losing the next decision

Start free – no card