Add support for creating headings in Things
Description
#8 adds support for moving todos to existing headings via the heading and heading_id parameters in things:add_todo and things:update_todo, but there's no functionality to create new headings. This limits the ability to programmatically organize todos into new sections.
Current Functionality
- ✅ Can move todos to existing headings using
heading or heading_id parameters
- ✅ Can see headings when they exist in todo responses
- ❌ Cannot create new headings
Requested Feature
Add a new function to create headings in Things, similar to how things:add_todo and things:add_project work.
Proposed API
New Function: things:add_heading
{
"name": "things:add_heading",
"description": "Create a new heading in Things",
"parameters": {
"properties": {
"title": {
"title": "Title",
"type": "string",
"description": "Title of the heading"
},
"list_id": {
"title": "List Id",
"type": "string",
"default": null,
"description": "ID of project/area to add heading to"
},
"list_title": {
"title": "List Title",
"type": "string",
"default": null,
"description": "Title of project/area to add heading to"
},
"when": {
"title": "When",
"type": "string",
"default": null,
"description": "When to schedule the heading (today, tomorrow, anytime, someday, or YYYY-MM-DD)"
}
},
"required": ["title"]
}
}
Use Cases
- Programmatic organization: Create headings to organize batches of related todos
- Project templates: Automatically create project structures with predefined headings
- Workflow automation: Create headings based on external triggers (calendar events, project phases, etc.)
- Better todo management: Organize todos into logical sections as they're created
Example Usage
// Create a new heading for organizing work tasks
await things.add_heading({
title: "Sprint Planning",
list_title: "Work Projects",
when: "today"
});
// Then add todos under that heading
await things.add_todo({
title: "Review user stories",
heading: "Sprint Planning",
list_title: "Work Projects"
});
Implementation Considerations
- Things URL scheme: Investigate if Things supports creating headings via URL schemes
- Database integration: If using direct database access, ensure headings are created with proper relationships
- Return value: Should return the created heading's ID for immediate use in subsequent todo creation
- Error handling: Handle cases where the target list doesn't exist or heading already exists
- Consistency: Maintain parameter naming consistency with existing
add_todo and add_project functions
Related Functions That Should Be Updated
Consider also adding:
things:update_heading - for modifying existing headings
things:get_headings - for listing all headings (if not already available)
Priority
Medium-High - This would significantly improve the organizational capabilities of the MCP server and enable more sophisticated workflow automation.
Alternative Workarounds
Currently, users must:
- Manually create headings in the Things app
- Note the heading names/IDs for use in API calls
- Cannot dynamically create organizational structures
This limits the effectiveness of automated todo management workflows.
Add support for creating headings in Things
Description
#8 adds support for moving todos to existing headings via the
headingandheading_idparameters inthings:add_todoandthings:update_todo, but there's no functionality to create new headings. This limits the ability to programmatically organize todos into new sections.Current Functionality
headingorheading_idparametersRequested Feature
Add a new function to create headings in Things, similar to how
things:add_todoandthings:add_projectwork.Proposed API
New Function:
things:add_heading{ "name": "things:add_heading", "description": "Create a new heading in Things", "parameters": { "properties": { "title": { "title": "Title", "type": "string", "description": "Title of the heading" }, "list_id": { "title": "List Id", "type": "string", "default": null, "description": "ID of project/area to add heading to" }, "list_title": { "title": "List Title", "type": "string", "default": null, "description": "Title of project/area to add heading to" }, "when": { "title": "When", "type": "string", "default": null, "description": "When to schedule the heading (today, tomorrow, anytime, someday, or YYYY-MM-DD)" } }, "required": ["title"] } }Use Cases
Example Usage
Implementation Considerations
add_todoandadd_projectfunctionsRelated Functions That Should Be Updated
Consider also adding:
things:update_heading- for modifying existing headingsthings:get_headings- for listing all headings (if not already available)Priority
Medium-High - This would significantly improve the organizational capabilities of the MCP server and enable more sophisticated workflow automation.
Alternative Workarounds
Currently, users must:
This limits the effectiveness of automated todo management workflows.