Skip to main content
Glama
hald

Things MCP Server

by hald

update_todo

Modify existing to-do items in the Things app by updating titles, notes, schedules, deadlines, tags, status, and project/heading assignments. Streamline task management with precise editing capabilities.

Instructions

Update an existing todo in Things

Args: id: ID of the todo to update title: New title notes: New notes when: New schedule deadline: New deadline tags: New tags completed: Mark as completed canceled: Mark as canceled list: The title of a project or area to move the to-do into list_id: The ID of a project or area to move the to-do into (takes precedence over list) heading: The heading title to move the to-do under heading_id: The heading ID to move the to-do under (takes precedence over heading)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
canceledNo
completedNo
deadlineNo
headingNo
heading_idNo
idYes
listNo
list_idNo
notesNo
tagsNo
titleNo
whenNo

Implementation Reference

  • Primary MCP tool handler for 'update_todo'. Decorated with @mcp.tool for registration. Executes by constructing and running a Things URL scheme.
    @mcp.tool async def update_todo( id: str, title: str = None, notes: str = None, when: str = None, deadline: str = None, tags: List[str] = None, completed: bool = None, canceled: bool = None, list: str = None, list_id: str = None, heading: str = None, heading_id: str = None ) -> str: """Update an existing todo in Things Args: id: ID of the todo to update title: New title notes: New notes when: New schedule deadline: New deadline tags: New tags completed: Mark as completed canceled: Mark as canceled list: The title of a project or area to move the to-do into list_id: The ID of a project or area to move the to-do into (takes precedence over list) heading: The heading title to move the to-do under heading_id: The heading ID to move the to-do under (takes precedence over heading) """ url = url_scheme.update_todo( id=id, title=title, notes=notes, when=when, deadline=deadline, tags=tags, completed=completed, canceled=canceled, list=list, list_id=list_id, heading=heading, heading_id=heading_id ) url_scheme.execute_url(url) return f"Updated todo with ID: {id}"
  • Helper utility in url_scheme.py that generates the Things URL scheme command for updating a todo, used by the MCP handler.
    def update_todo(id: str, title: Optional[str] = None, notes: Optional[str] = None, when: Optional[str] = None, deadline: Optional[str] = None, tags: Optional[list[str]] = None, completed: Optional[bool] = None, canceled: Optional[bool] = None, list: Optional[str] = None, list_id: Optional[str] = None, heading: Optional[str] = None, heading_id: Optional[str] = None) -> str: """Construct URL to update an existing todo. Note: list_id takes precedence over list if both are provided. """ params = { 'id': id, 'title': title, 'notes': notes, 'when': when, 'deadline': deadline, 'tags': tags, 'completed': completed, 'canceled': canceled, 'list': list, 'list-id': list_id, 'heading': heading, 'heading-id': heading_id } return construct_url('update', {k: v for k, v in params.items() if v is not None})

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hald/things-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server