CREATE TASK
Create and assign tasks within the task management system.
Syntax
CREATE TASK title, description, assignee, due_date, priority
Parameters
| Parameter | Type | Description |
|---|---|---|
title | String | Task title/name |
description | String | Detailed task description |
assignee | String | Email or user ID of the assignee |
due_date | String | Due date in format “YYYY-MM-DD” or relative like “tomorrow”, “next week” |
priority | String | Task priority: “low”, “medium”, “high”, “urgent” |
Description
The CREATE TASK keyword creates tasks in the task engine system with automatic assignment to users or groups, due date tracking and reminders, priority-based organization, integration with the calendar system, email notifications to assignees, and progress tracking capabilities.
Examples
Basic Task Creation
CREATE TASK "Review proposal", "Review and provide feedback on Q4 proposal", "john@example.com", "2024-01-15", "high"
Task with Current User
user_email = GET "user.email"
CREATE TASK "Follow up", "Contact customer about renewal", user_email, "tomorrow", "medium"
Bulk Task Creation
team = ["alice@example.com", "bob@example.com", "carol@example.com"]
FOR EACH member IN team
CREATE TASK "Complete training", "Finish security awareness training", member, "next week", "medium"
NEXT
Task from User Input
task_info = HEAR "What task should I create?"
CREATE TASK task_info, "User requested task", "support@example.com", "today", "high"
TALK "Task created and assigned to support team"
Return Value
The keyword returns a task object containing the task_id as a unique task identifier, status indicating the task state (such as “created”, “assigned”, “in_progress”, or “completed”), created_at with the creation timestamp, url providing a link to the task in the web interface, and reminder_set indicating whether a reminder was configured.
Task Statuses
Tasks progress through a defined lifecycle. The created status indicates initial creation, followed by assigned when the task has been assigned to a user. Once work begins, the status changes to in_progress. If the task is waiting on a dependency, it enters the blocked state. When finished, it reaches completed, or alternatively cancelled if the task was terminated without completion.
Integration Points
Calendar Integration
Tasks automatically appear in the assignee’s calendar when a due date is specified, calendar integration is enabled, and the user has calendar permissions.
Email Notifications
The system sends notifications for task assignment, due date reminders, status changes, and when comments are added.
Task Dependencies
Tasks can be linked together to create parent-child relationships:
parent_task = CREATE TASK "Project", "Main project", "pm@example.com", "next month", "high"
subtask = CREATE TASK "Research", "Initial research", "analyst@example.com", "next week", "medium"
LINK_TASKS parent_task.task_id, subtask.task_id
Priority Levels
| Priority | Description | SLA |
|---|---|---|
urgent | Immediate attention required | 4 hours |
high | Important, time-sensitive | 1 day |
medium | Standard priority | 3 days |
low | Non-urgent | 1 week |
Date Formats
The keyword supports multiple date formats. Absolute dates can be specified as “2024-01-15” or “01/15/2024”. Relative dates include “today”, “tomorrow”, “next week”, and “in 3 days”. Natural language formats like “Monday”, “next Friday”, and “end of month” are also supported.
Error Handling
The keyword validates that the assignee exists in the system, checks that the date is in the future, verifies the priority is valid, returns an error if task creation fails, and handles permission issues gracefully.
Permissions
To create tasks, the user must have task creation permission, project member status, admin privileges, or delegation rights from the assignee.
Best Practices
Use clear, action-oriented titles that describe what needs to be done. Include detailed descriptions with acceptance criteria so the assignee understands the requirements. Set realistic deadlines that can actually be achieved. Reserve high and urgent priorities for tasks that truly warrant them rather than marking everything as urgent. Verify the assignee can handle the task before assignment. Follow up periodically to check task status and provide assistance if needed.
Advanced Usage
Task Templates
template = GET_TASK_TEMPLATE("customer_onboarding")
CREATE TASK template.title, template.description, assigned_user, due_date, template.priority
Conditional Creation
IF urgency = "high" AND department = "support" THEN
CREATE TASK "Urgent Support", issue_description, "support-lead@example.com", "today", "urgent"
ELSE
CREATE TASK "Support Request", issue_description, "support@example.com", "tomorrow", "medium"
END IF
Task with Attachments
task = CREATE TASK "Review document", "Please review attached", reviewer, deadline, "high"
' Note: Use document sharing systems for attachments
Related Keywords
The BOOK keyword schedules meetings instead of tasks. Use SET SCHEDULE to create recurring tasks. The SEND MAIL keyword sends task notifications, and ADD MEMBER adds users to task groups.
Database Tables
Tasks are stored across several database tables. The tasks table holds main task records. User assignments are tracked in task_assignments. Discussions happen in task_comments. Related files are referenced in task_attachments. The task_history table records status changes over time.
Implementation
The CREATE TASK keyword is implemented in src/basic/keywords/create_task.rs. It integrates with the task engine module for task management, the calendar engine for scheduling, the email module for notifications, and the storage module for attachments.