project_set_next_review_date
Reschedule a project's next review date without altering the recurring interval. Pass a new date or null to reset to the schedule derived from last review plus interval.
Instructions
Set or reset a project's next review date directly. Use when the user wants to reschedule a review independent of the recurring interval — 'push the Q3 review to next Monday' without changing the cadence. Do NOT use to mark a project as reviewed (prefer review_mark_reviewed) or to change the recurring interval (prefer review_set_interval). Pass projectId and nextReviewDate (ISO-8601 with offset), or pass null for nextReviewDate to reset the date to the interval-derived schedule (last review date + review interval) — OmniFocus cannot leave a project unscheduled, so null does not clear the date. Past-dated values are accepted and surface the project as overdue immediately — matches OmniFocus's own UX. Returns { id, name, nextReviewDate } — name is the project's display name (post-mutation lookup; null if the project has been deleted), and nextReviewDate echoes back the project's new value (the recomputed schedule date when null was passed) so the agent can describe the change without a follow-up read. Errors: NOT_FOUND when projectId does not exist. Side effects: writes to OmniFocus; invalidates project + review caches; sets syncPending = true. Example: project_set_next_review_date({ projectId: "prj123", nextReviewDate: "2026-05-05T00:00:00-05:00" }) Example: project_set_next_review_date({ projectId: "prj123", nextReviewDate: null })
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Persistent ID of the project whose next review date should change. | |
| nextReviewDate | Yes | Next review date as ISO-8601 (with offset). Pass null to reset to the interval-derived schedule — OmniFocus recomputes the date from last review date + review interval and cannot leave a project unscheduled. Past-dated values are accepted and mark the project as overdue immediately. |