add-project
Create a new project in Things 3 with title, notes, deadlines, tags, and optional to-dos for task management.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Simple project title. This command creates a project only and does not create headings. | |
| notes | No | ||
| when | No | ||
| deadline | No | ||
| tags | No | ||
| area-id | No | ||
| area | No | ||
| to-dos | No | Optional simple to-dos to add to the project. If headings are needed, prefer create-project-with-headings or json. | |
| completed | No | ||
| canceled | No | ||
| reveal | No | ||
| creation-date | No | ||
| completion-date | No |
Implementation Reference
- src/index.ts:1856-1883 (handler)The tool 'add-project' is registered and implemented in src/index.ts. It constructs a Things 3 URL with the given parameters and opens it to create a project without headings.
"add-project", { title: z.string().describe("Simple project title. This command creates a project only and does not create headings."), notes: z.string().optional(), when: z.string().optional(), deadline: z.string().optional(), tags: z.array(z.string()).optional(), "area-id": z.string().optional(), area: z.string().optional(), "to-dos": z.array(z.string()).optional().describe("Optional simple to-dos to add to the project. If headings are needed, prefer create-project-with-headings or json."), completed: z.boolean().optional(), canceled: z.boolean().optional(), reveal: z.boolean().optional(), "creation-date": z.string().optional(), "completion-date": z.string().optional(), }, async (params) => { const url = await openThingsURL( "add-project", buildURLParams(params, new Set(["to-dos"])) ); return buildTextResponse(`Created simple project "${params.title}" without headings`, { url, guidance: "If this project needs headings, use create-project-with-headings or the json tool when creating a brand-new project.", }); } );