Problem
Basecamp supports repeating to-dos in the product UI, but the public To-dos API and the CLI do not expose the recurrence rule. This prevents agents and scripts from creating, inspecting, or updating a native repeating to-do.
The current CLI surface only offers the ordinary fields:
basecamp todos create ... --due YYYY-MM-DD
basecamp todos update ... --due ... --starts-on ...
Verified behavior
Using Basecamp CLI 0.9.1 against the public API, I posted a disposable to-do with a due date plus the same recurrence-shaped fields documented for Schedule entries:
{
"content": "API recurrence probe — safe to trash",
"due_on": "2026-09-16",
"recurrence_schedule": { "frequency": "every_week" },
"recurs_until": "2026-10-15"
}
The API returned 201 Created, but silently discarded recurrence_schedule and recurs_until. The response and a subsequent read contained only the ordinary to-do fields and due date. The disposable record was then trashed.
This matches the published API reference:
The CLI therefore has no supported to-do field or endpoint to wire a repeat flag to.
API contract needed
CLI support needs a public API contract that can:
- Create a repeating primary to-do with an initial
due_on, recurrence rule, and optional end date.
- Read the recurrence rule and distinguish the primary to-do from generated occurrences.
- Update the primary rule for future occurrences without rewriting completed or past instances.
- Stop recurrence while preserving existing occurrences.
- Return validation errors instead of silently ignoring an invalid or unsupported recurrence field.
Reusing the Schedule entry naming would keep the API consistent if the underlying model permits it, but the product's primary/occurrence semantics may need a dedicated representation.
Once the public API and SDK expose that contract, I can follow up with CLI support along these lines:
basecamp todos create "Run payroll" --due 2026-09-25 --repeat every-month [--recurs-until YYYY-MM-DD]
basecamp todos show <primary-or-occurrence> --json
basecamp todos update <primary> --repeat ... | --no-repeat
That CLI change would include validation, structured JSON output, agent-skill documentation, and tests. Until the contract is available, the CLI should not call an undocumented web endpoint or map repeating to-dos to Schedule entries.
Problem
Basecamp supports repeating to-dos in the product UI, but the public To-dos API and the CLI do not expose the recurrence rule. This prevents agents and scripts from creating, inspecting, or updating a native repeating to-do.
The current CLI surface only offers the ordinary fields:
Verified behavior
Using Basecamp CLI 0.9.1 against the public API, I posted a disposable to-do with a due date plus the same recurrence-shaped fields documented for Schedule entries:
{ "content": "API recurrence probe — safe to trash", "due_on": "2026-09-16", "recurrence_schedule": { "frequency": "every_week" }, "recurs_until": "2026-10-15" }The API returned
201 Created, but silently discardedrecurrence_scheduleandrecurs_until. The response and a subsequent read contained only the ordinary to-do fields and due date. The disposable record was then trashed.This matches the published API reference:
content,description, assignees/subscribers,notify,due_on, andstarts_onfor create/update: https://github.com/basecamp/bc-api/blob/master/sections/todos.mdrecurrence_scheduleandrecurs_until: https://github.com/basecamp/bc-api/blob/master/sections/schedule_entries.mdThe CLI therefore has no supported to-do field or endpoint to wire a repeat flag to.
API contract needed
CLI support needs a public API contract that can:
due_on, recurrence rule, and optional end date.Reusing the Schedule entry naming would keep the API consistent if the underlying model permits it, but the product's primary/occurrence semantics may need a dedicated representation.
Once the public API and SDK expose that contract, I can follow up with CLI support along these lines:
That CLI change would include validation, structured JSON output, agent-skill documentation, and tests. Until the contract is available, the CLI should not call an undocumented web endpoint or map repeating to-dos to Schedule entries.