agentsclimarketplace

Org update todo

Skill szaffarano/org-mcp-server/skills/org-update-todo

Update the TODO state and metadata of an existing org-mode heading via the org MCP server. Use when the user wants to change a task's state, priority, tags, or timestamps. Triggers: "mark as done", "complete this task", "reschedule", "change priority", "update the deadline", "close this TODO", "set a deadline", "retag this", "move to IN_PROGRESS", or any request to modify an existing task or heading's metadata.From its SKILL.md

Install
npx -y skills add szaffarano/org-mcp-server --skill org-update-todo

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

3.6 KB, as published. Nobody here has run it

Org Update Todo

Update TODO state and planning metadata of existing headings using mcp__org__org-update-todo.

Tool — mcp__org__org-update-todo

Targeting (one of these is required)

By ID (preferred): supply id — the :ID: property value of the heading. Wins over file/heading_path when both are given.

By location: supply both file (relative path within org directory) and heading_path (slash-separated path, e.g. "Projects/Work/Task name").

Fields to update (all optional — omit what you don't want to change)

  • todo_state: New keyword matching org_todo_keywords (e.g. "TODO", "DONE"). CLOSED is auto-stamped on done transitions and auto-removed on reactivation unless org_auto_closed_timestamp is disabled in config.
  • priority: "A", "B", or "C".
  • tags: Replaces the tag list wholesale. Each must match ^[A-Za-z0-9_@]+$. Pass an empty list [] to remove all tags.

Timestamps (ISO YYYY-MM-DD or YYYY-MM-DD HH:MM, optional repeater/warning):

  • scheduled: New SCHEDULED active timestamp.

  • deadline: New DEADLINE active timestamp.

  • closed: New CLOSED inactive timestamp (usually auto-managed; set manually only when overriding auto-close behavior).

  • Repeater syntax: +N, ++N, or .+N followed by h|d|w|m|y.

  • Warning syntax: -N followed by h|d|w|m|y.

  • title: Replace the heading title. Non-empty, no newlines.

  • body: Replace the entire body text. Pass empty string or clear: ["body"] to remove. Setting and clearing in the same call is an error.

  • properties: List of {key, value} pairs to upsert into the property drawer. Keys are case-insensitive; new keys are appended, existing keys are updated.

  • remove_properties: List of property keys to delete from the drawer. Removing a non-existent key is a no-op. A key must not appear in both properties and remove_properties.

Clearing fields:

  • clear: List of field names to remove entirely. Valid values: "todo_state", "priority", "tags", "scheduled", "deadline", "closed", "body".

Common patterns

GoalKey parameters
Mark doneid or file+heading_path, todo_state: "DONE"
Start workingtodo_state: "IN_PROGRESS"
Reopen a tasktodo_state: "TODO", clear: ["closed"]
Raise prioritypriority: "A"
Reschedulescheduled: "YYYY-MM-DD"
Set deadlinedeadline: "YYYY-MM-DD"
Remove deadlineclear: ["deadline"]
Retagtags: ["new_tag1", "new_tag2"]
Remove all tagstags: []
Rename a tasktitle: "New name"
Replace body textbody: "Updated description."
Remove body textclear: ["body"]
Set effort estimateproperties: [{"key": "EFFORT", "value": "2h"}]
Set categoryproperties: [{"key": "CATEGORY", "value": "work"}]
Remove a propertyremove_properties: ["EFFORT"]

Workflow

  1. Find the target: Use mcp__org__org-search or mcp__org__org-agenda to locate the heading. Prefer using its :ID: property if available.
  2. Apply the update: Call mcp__org__org-update-todo with the target and desired fields.
  3. Confirm: The tool returns the updated heading state. Verify the result matches intent.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.