Skip to content

Add safe repeating-task support to task creation and editing #93

Description

@deverman

User outcome

Let users create or update repeating OmniFocus tasks through the compact task
creation and edit tools instead of managing repetition manually in OmniFocus.

Examples include weekly reviews, monthly bills, and reminders that repeat from
their assigned date or after completion.

Dependency

Implement after the edit-surface consolidation in #91 and task creation in #82
are stable. Extend those tools rather than adding a dedicated repetition tool.

Documented API basis

Omni Automation documents the writable task.repetitionRule property and the
Task.RepetitionRule constructor. Current OmniFocus versions support an ICS
recurrence rule plus schedule type, anchor date, and catch-up behavior. The
legacy repetition method parameter is deprecated when the newer schedule fields
are supplied.

Reference:
https://omni-automation.com/omnifocus/task-repeat.html

Scope to design and implement

  • Read the current repetition rule through existing task field selection.
  • Set or clear a repetition rule through edit_tasks.
  • Set repetition when creating a task through add_tasks.
  • Represent the documented current schedule type, anchor date, catch-up
    behavior, and ICS rule without exposing deprecated combinations.
  • Validate the rule and required anchor/due/defer dates before saving.
  • Preview the human-readable schedule and raw supported values before writing.
  • Verify the saved rule and return compact repetition fields when requested.
  • Define how completing or dropping a repeating occurrence is reported so the
    assistant does not confuse an advanced original task with a failed update.

Guardrails

  • Use only the documented Omni Automation repetition APIs.
  • Do not invent or silently repair an invalid ICS rule.
  • Reject deprecated/current parameter combinations that OmniFocus rejects.
  • Require explicit confirmation before replacing or clearing an existing rule.
  • Keep repetition optional so ordinary task schemas and responses remain
    compact.
  • Do not combine this work with creation, tool consolidation, transport, or
    query optimization in one branch.

Acceptance criteria

  • A task can be created with a verified repeating schedule.
  • An existing task can have its repetition set, replaced, or cleared.
  • Regular schedules and schedules based on completion are distinguishable.
  • Invalid rules and unsupported combinations fail before changing OmniFocus.
  • Preview describes the resulting schedule accurately.
  • Readback matches the rule stored by OmniFocus.
  • Completion behavior for a repeating task reports the resulting occurrence and
    stable IDs truthfully.
  • Swift Testing and reversible live integration tests cover set, replace, clear,
    invalid, and completion-advance cases.
  • MCP/CLI parity and compact catalog-size gates remain satisfied.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions