create_task
Create and manage tasks in Dart by specifying title, description, status, priority, assignees, tags, dates, parent task, and custom properties. Ideal for AI-driven project management and task organization.
Instructions
Create a new task in Dart. You can specify title, description, status, priority, size, dates, dartboard, assignees, tags, parent task, custom properties, and task relationships.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assignee | No | Single assignee name or email (if workspace doesn't allow multiple assignees) | |
| assignees | No | Array of assignee names or emails (if workspace allows multiple assignees) | |
| customProperties | No | Custom properties to apply to the task. Use the property names from the config. Examples: { 'customCheckboxProperty': true, 'customTextProperty': 'Some text', 'customNumberProperty': 5, 'customSelectProperty': 'Option Name', 'customDatesProperty': '2025-05-10', 'customDatesPropertyWithRange': ['2025-05-01', '2025-05-30'], 'customMultiselectProperty': ['option1', 'option2'], 'customUserProperty': 'user@example.com', 'customMultipleUserProperty': ['user1@example.com', 'user2@example.com'], 'customTimeTrackingProperty': '1:30:00' } | |
| dartboard | No | The title of the dartboard (project or list of tasks) | |
| description | No | A longer description of the task, which can include markdown formatting | |
| dueAt | No | The due date in ISO format (should be at 9:00am in user's timezone) | |
| parentId | No | The ID of the parent task | |
| priority | No | The priority (Critical, High, Medium, or Low) | |
| size | No | The size which represents the amount of work needed | |
| startAt | No | The start date in ISO format (should be at 9:00am in user's timezone) | |
| status | No | The status from the list of available statuses | |
| tags | No | Array of tags to apply to the task | |
| taskRelationships | No | Task relationships including subtasks, blockers, duplicates, and related tasks | |
| title | Yes | The title of the task (required) | |
| type | No | The type of the task from the list of available types |
Implementation Reference
- index.ts:398-404 (handler)Handler implementation for the 'create_task' tool within the CallToolRequestSchema switch statement. It casts the input arguments to TaskCreate type and delegates the task creation to TaskService.createTask, then returns the result as JSON text.case CREATE_TASK_TOOL.name: { const taskData = args as TaskCreate; const task = await TaskService.createTask({ item: taskData }); return { content: [{ type: "text", text: JSON.stringify(task, null, 2) }], }; }
- tools.ts:182-254 (schema)Tool schema definition for 'create_task', including name, detailed description, and comprehensive inputSchema with properties for task attributes, custom properties, and relationships.export const CREATE_TASK_TOOL: Tool = { name: "create_task", description: "Create a new task in Dart. You can specify title, description, status, priority, size, dates, dartboard, assignees, tags, parent task, custom properties, and task relationships.", inputSchema: { type: "object", properties: { title: { type: "string", description: "The title of the task (required)", }, description: { type: "string", description: "A longer description of the task, which can include markdown formatting", }, dartboard: { type: "string", description: "The title of the dartboard (project or list of tasks)", }, parentId: { type: "string", description: "The ID of the parent task", pattern: "^[a-zA-Z0-9]{12}$", }, status: { type: "string", description: "The status from the list of available statuses", }, type: { type: "string", description: "The type of the task from the list of available types", }, assignees: { type: "array", items: { type: "string" }, description: "Array of assignee names or emails (if workspace allows multiple assignees)", }, assignee: { type: "string", description: "Single assignee name or email (if workspace doesn't allow multiple assignees)", }, priority: { type: "string", description: "The priority (Critical, High, Medium, or Low)", }, tags: { type: "array", items: { type: "string" }, description: "Array of tags to apply to the task", }, size: { type: ["string", "number", "null"], description: "The size which represents the amount of work needed", }, startAt: { type: "string", description: "The start date in ISO format (should be at 9:00am in user's timezone)", }, dueAt: { type: "string", description: "The due date in ISO format (should be at 9:00am in user's timezone)", }, customProperties: CUSTOM_PROPERTIES_SCHEMA, taskRelationships: TASK_RELATIONSHIPS_SCHEMA, }, required: ["title"], }, };
- index.ts:192-214 (registration)Registration of the 'create_task' tool (as CREATE_TASK_TOOL) in the TOOLS array, which is returned by ListToolsRequestSchema handler to expose available tools.const TOOLS = [ // Config GET_CONFIG_TOOL, // Tasks CREATE_TASK_TOOL, LIST_TASKS_TOOL, GET_TASK_TOOL, UPDATE_TASK_TOOL, DELETE_TASK_TOOL, // Docs CREATE_DOC_TOOL, LIST_DOCS_TOOL, GET_DOC_TOOL, UPDATE_DOC_TOOL, DELETE_DOC_TOOL, // Comments ADD_TASK_COMMENT_TOOL, LIST_TASK_COMMENTS_TOOL, // Other GET_DARTBOARD_TOOL, GET_FOLDER_TOOL, GET_VIEW_TOOL, ];
- index.ts:36-52 (registration)Import of CREATE_TASK_TOOL from tools.ts (noted as tools.js in code), making it available for registration and use in handlers.ADD_TASK_COMMENT_TOOL, CREATE_DOC_TOOL, CREATE_TASK_TOOL, DELETE_DOC_TOOL, DELETE_TASK_TOOL, GET_CONFIG_TOOL, GET_DARTBOARD_TOOL, GET_DOC_TOOL, GET_FOLDER_TOOL, GET_TASK_TOOL, GET_VIEW_TOOL, LIST_DOCS_TOOL, LIST_TASK_COMMENTS_TOOL, LIST_TASKS_TOOL, UPDATE_DOC_TOOL, UPDATE_TASK_TOOL, } from "./tools.js";