create_task
Create a new task/todo item with optional due date.Parameters
The title of the task
Due date. Supports flexible formats:
- Natural language:
"tomorrow","next Friday" - ISO 8601:
"2026-01-25"
Additional notes for the task
Task list ID. If not provided, uses default list
Returns
Whether the operation succeeded
The unique ID of the created task
Confirmation message
Created task object with
id, title, status, due, and notes fieldsExample
list_tasks
List tasks from a task list. Shows incomplete tasks by default.Parameters
Task list ID. If not provided, uses default list
Include completed tasks in results
Maximum number of tasks to return (1-100)
Returns
Whether the operation succeeded
Summary message
List of tasks with:
id(string): Task IDtitle(string): Task titlestatus(string):"needsAction"or"completed"due(string): Due date (if set)notes(string): Task notesupdated(string): Last update timestamp
The task list ID used
Example
mark_task_complete
Mark a task as completed/done.Parameters
The unique ID of the task to mark complete
Task list ID. If not provided, uses default list
Returns
Whether the operation succeeded
Confirmation message
Updated task object with
id, title, and status fieldsExample
mark_task_incomplete
Mark a task as incomplete/not done. Use this to reopen a completed task.Parameters
The unique ID of the task to mark incomplete
Task list ID. If not provided, uses default list
Returns
Whether the operation succeeded
Confirmation message
Updated task object with
id, title, and status fieldsExample
delete_task
Delete a task by its ID. Always confirm with the user before deleting.Parameters
The unique ID of the task to delete
Task list ID. If not provided, uses default list
Returns
Whether the operation succeeded
Confirmation message
Example
update_task
Update a task’s title, due date, or notes.Parameters
The unique ID of the task to update
Task list ID. If not provided, uses default list
New task title
New due date
New notes
Returns
Whether the operation succeeded
Confirmation message
Updated task object with
id, title, status, due, and notes fieldsExample
get_task_lists
Get all available task lists. Use this to find task list IDs.Parameters
No parameters required.Returns
Whether the operation succeeded
Summary message
List of task lists with:
id(string): Task list IDtitle(string): Task list titleupdated(string): Last update timestamp
Example
Implementation Details
All Tasks tools interact with the Google Tasks API through theTasksService class located in services/tasks.py:11-504. The service:
- Automatically uses the default task list if none specified
- Caches the default task list ID for efficiency
- Supports both incomplete and completed task filtering
- Handles RFC 3339 datetime formatting for due dates
- Provides detailed error messages for debugging
Task Status
Tasks have two possible status values:"needsAction"- Task is incomplete/active"completed"- Task is completed
Default Task List
The service automatically retrieves and caches the default task list ID (services/tasks.py:19-37):
Common Response Pattern
All Tasks tools return a dictionary with:Best Practices
- Use default list: Omit
tasklistparameter to use the user’s default list - Get task lists first: Use
get_task_lists()to find specific list IDs if needed - Filter completed tasks: Set
show_completed=False(default) to focus on active tasks - Confirm destructive operations: Always confirm with the user before calling
delete_task - Natural language dates: The agent can parse natural language due dates for better UX
- Task workflow: List → Mark Complete → Update → Delete (typical task lifecycle)