decide_set_project_interval
Define project timelines by setting start and end dates for tasks within the Decide realm of the addTaskManager system.
Instructions
Set project interval (start date and end date) in Decide realm.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectRecordName | Yes | Record name of the project | |
| startDate | Yes | Start date in ISO format | |
| endDate | Yes | End date in ISO format |
Implementation Reference
- src/index.ts:441-452 (registration)Tool registration in the ListTools response array, defining name, description, and input schema.name: 'decide_set_project_interval', description: 'Set project interval (start date and end date) in Decide realm.', inputSchema: { type: 'object', properties: { projectRecordName: { type: 'string', description: 'Record name of the project' }, startDate: { type: 'string', format: 'date-time', description: 'Start date in ISO format' }, endDate: { type: 'string', format: 'date-time', description: 'End date in ISO format' } }, required: ['projectRecordName', 'startDate', 'endDate'] } },
- src/index.ts:709-711 (handler)Handler dispatch in the CallToolRequestHandler switch statement, with argument validation.case 'decide_set_project_interval': this.validateArgs(args, ['projectRecordName', 'startDate', 'endDate']); return await this.setProjectInterval(args.projectRecordName, args.startDate, args.endDate);
- src/index.ts:1014-1016 (handler)Primary handler method for the tool. Delegates to setDueDateForItem to update project endDate (note: startDate parameter is validated but unused in mock implementation).private async setProjectInterval(projectRecordName: string, startDate: string, endDate: string) { return this.setDueDateForItem(projectRecordName, 'Project', endDate); }
- src/index.ts:1000-1005 (helper)Supporting helper method that provides the mock implementation for setting endDate on Decide realm items (tasks or projects).private async setDueDateForItem(itemRecordName: string, itemType: 'Task' | 'Project', endDateISO: string) { // Mock fetch & check realm (should be REALM_DECIDE_ID) const endDateTimestamp = new Date(endDateISO).getTime(); // Mock update: console.log('Mock CloudKit: Setting endDate', endDateTimestamp, 'for', itemType, itemRecordName); return { content: [{ type: 'text', text: `Due date (endDate) ${endDateISO} set for ${itemType} ${itemRecordName} in Decide realm.` }] }; }