name: google-tasks category: productivity description: Read, create, complete and delete tasks via Google Tasks API. Requires Google OAuth. Tools: http. test_prompt: Fetch the task lists and show the open tasks from the first list permissions: - android.permission.INTERNET credentials: - id: google_credentials label: Google Account type: oauth auth_provider: google
Google Tasks Skill
Manage tasks (to-dos) via the Google Tasks API.
Tool: http
All requests require auth_provider: "google".
Base URL: https://tasks.googleapis.com/tasks/v1
Fetch task lists
{
"method": "GET",
"url": "https://tasks.googleapis.com/tasks/v1/users/@me/lists",
"auth_provider": "google"
}
Result contains items[] with id and title. The default list is usually named "My Tasks".
Fetch tasks from a list
{
"method": "GET",
"url": "https://tasks.googleapis.com/tasks/v1/lists/{TASKLIST_ID}/tasks?showCompleted=false&maxResults=20",
"auth_provider": "google"
}
Parameters:
showCompleted=true/false– Show completed tasksshowHidden=true– Show deleted/hidden tasksdueMin/dueMax– Filter by due date (RFC 3339, e.g.2024-01-15T00:00:00Z)
Create a new task
{
"method": "POST",
"url": "https://tasks.googleapis.com/tasks/v1/lists/{TASKLIST_ID}/tasks",
"auth_provider": "google",
"body": {
"title": "{TITLE}",
"notes": "{NOTES}",
"due": "{ISO_DATE}T00:00:00.000Z"
}
}
Fields:
title(required) – Task titlenotes(optional) – Additional notes/descriptiondue(optional) – Due date as RFC 3339 timestamp
Update a task
{
"method": "PATCH",
"url": "https://tasks.googleapis.com/tasks/v1/lists/{TASKLIST_ID}/tasks/{TASK_ID}",
"auth_provider": "google",
"body": {
"title": "{NEW_TITLE}",
"notes": "{NEW_NOTES}",
"due": "{ISO_DATE}T00:00:00.000Z"
}
}
Mark a task as completed
{
"method": "PATCH",
"url": "https://tasks.googleapis.com/tasks/v1/lists/{TASKLIST_ID}/tasks/{TASK_ID}",
"auth_provider": "google",
"body": {
"status": "completed"
}
}
Status values: "needsAction" (open), "completed" (done)
Delete a task
{
"method": "DELETE",
"url": "https://tasks.googleapis.com/tasks/v1/lists/{TASKLIST_ID}/tasks/{TASK_ID}",
"auth_provider": "google"
}
Workflow: Read tasks aloud
- Fetch task lists → select default list (first one)
- Fetch tasks for the list (showCompleted=false)
- Read aloud with
tts: "You have 3 open tasks: 1. Groceries, 2. ..."
Workflow: Add a task
- Fetch task lists → select default list
- POST new task with title (and optionally due date)
- Confirm with
tts: "Task created: {TITLE}"
Workflow: Complete a task
- Fetch tasks
- Find matching task by title
- PATCH with
status: "completed" - Confirm with
tts: "Task completed: {TITLE}"
Due dates
Use the datetime tool with output_format parameter to generate ISO date/datetime strings directly.
Setting due dates
- "by tomorrow" →
datetime absolutewithbase: "tomorrow",output_format: "iso_datetime_utc_ms"→ returnsYYYY-MM-DDT00:00:00.000Z - "by Friday" →
datetime absolutewithbase: "next_friday",output_format: "iso_datetime_utc_ms"→ returnsYYYY-MM-DDT00:00:00.000Z - "on 2024-03-15" →
datetime absolutewithbase: "2024-03-15",output_format: "iso_datetime_utc_ms"→ returns2024-03-15T00:00:00.000Z - Format always:
YYYY-MM-DDT00:00:00.000Z(useoutput_format: "iso_datetime_utc_ms")
Note: The base parameter accepts enum values ("today", "tomorrow", etc.), Unix timestamps (number), or ISO date/datetime strings ("2024-03-15", "2024-03-15T14:00:00", etc.).
Interpreting due dates (IMPORTANT)
When reading tasks aloud and expressing the due date relatively:
- Get today's ISO date via
datetime absolutewithbase: "today",output_format: "iso_date"→ returnsYYYY-MM-DD - Compare ONLY the date part (YYYY-MM-DD) of the
duefield with today's ISO date - Calculation:
duedate (YYYY-MM-DD) minus today (YYYY-MM-DD) = days until due
Example: Today is 2026-02-22, task has due: "2026-02-23T00:00:00.000Z"
→ 2026-02-23 minus 2026-02-22 = 1 day → "tomorrow"
Mapping:
- 0 days → "today"
- 1 day → "tomorrow"
- 2 days → "day after tomorrow"
- negative → "overdue"
Examples
- "What do I still need to do?" → Fetch open tasks + TTS
- "Create a task: Groceries" → POST new task
- "Remind me about the dentist tomorrow" → POST task with tomorrow's due date
- "Do I have tasks for today?" → Fetch tasks, filter by due date
- "Task Groceries is done" → Find task + PATCH completed
- "Delete the dentist task" → Find task + DELETE