← 返回
效率工具 Key

Google Tasks

Google Tasks API integration with managed OAuth. Manage task lists and tasks with full CRUD operations. Use this skill when users want to read, create, updat...
通过托管OAuth集成Google Tasks API,支持任务列表和任务的完整增删改查操作。当用户需要读取、创建、更新...
byungkyu
效率工具 clawhub v1.0.5 3 版本 99270.3 Key: 需要
★ 10
Stars
📥 7,554
下载
💾 984
安装
3
版本
#latest

概述

Google Tasks

Access the Google Tasks API with managed OAuth authentication. Manage task lists and tasks with full CRUD operations.

Quick Start

CLI:

maton google-tasks task list -l <tasklistId>
maton api '/google-tasks/tasks/v1/lists/<tasklistId>/tasks'

Python:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/google-tasks/tasks/v1/lists/<tasklistId>/tasks')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Base URL

https://api.maton.ai/google-tasks/{native-api-path}

Maton proxies requests to tasks.googleapis.com and automatically injects your OAuth token.

Installation

NPM:

npm install -g @maton-ai/cli

Homebrew:

brew install maton-ai/cli/maton

Authentication

CLI:

maton login                          # Opens browser for API key
maton login --interactive            # Skip browser, paste API key directly
maton whoami                         # Show current auth state

Manual:

  1. Sign in or create an account at maton.ai
  2. Go to maton.ai/settings
  3. Copy your API key
  4. Set your API key as MATON_API_KEY:
export MATON_API_KEY="YOUR_API_KEY"

Connection Management

Manage your Google Tasks OAuth connections at https://api.maton.ai.

List Connections

CLI:

maton connection list google-tasks --status ACTIVE
maton api -X GET /connections -f app=google-tasks -f status=ACTIVE

Python:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/connections?app=google-tasks&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Create Connection

CLI:

maton connection create google-tasks
maton api /connections -f app=google-tasks

Python:

python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'google-tasks'}).encode()
req = urllib.request.Request('https://api.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Get Connection

CLI:

maton connection view {connection_id}
maton api /connections/{connection_id}

Python:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Response:

{
  "connection": {
    "connection_id": "{connection_id}",
    "status": "ACTIVE",
    "creation_time": "2026-02-07T02:35:51.002199Z",
    "last_updated_time": "2026-02-07T05:32:30.369186Z",
    "url": "https://connect.maton.ai/?session_token=...",
    "app": "google-tasks",
    "metadata": {}
  }
}

Open the returned url in a browser to complete OAuth authorization.

Delete Connection

CLI:

maton connection delete {connection_id}
maton api -X DELETE /connections/{connection_id}

Python:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Specifying Connection

If you have multiple Google Tasks connections, specify which one to use:

CLI:

maton google-tasks tasklist list --connection {connection_id}
maton api /google-tasks/tasks/v1/users/@me/lists --connection {connection_id}

Python:

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/google-tasks/tasks/v1/users/@me/lists')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Maton-Connection', '{connection_id}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

If you have multiple connections, always specify the connection to ensure requests go to the intended account.

Security & Permissions

  • Access is scoped to task lists and tasks with full CRUD operations within the connected Google Tasks account.
  • All write operations require explicit user approval. Before executing any create, update, or delete call, confirm the target resource and intended effect with the user.

API Reference

Task Lists

List All Task Lists

GET /google-tasks/tasks/v1/users/@me/lists

Query Parameters:

  • maxResults - Maximum number of task lists to return (default: 20, max: 100)
  • pageToken - Token for pagination

Example:

maton google-tasks tasklist list

Get Task List

GET /google-tasks/tasks/v1/users/@me/lists/{tasklistId}

Example:

maton google-tasks tasklist view <tasklistId>

Create Task List

POST /google-tasks/tasks/v1/users/@me/lists
Content-Type: application/json

{
  "title": "New Task List"
}

Example:

maton google-tasks tasklist create --title 'New Task List'

Update Task List (PATCH - partial update)

PATCH /google-tasks/tasks/v1/users/@me/lists/{tasklistId}
Content-Type: application/json

{
  "title": "Updated Title"
}

Example:

maton google-tasks tasklist update <tasklistId> --title 'Updated Title'

Update Task List (PUT - full replace)

PUT /google-tasks/tasks/v1/users/@me/lists/{tasklistId}
Content-Type: application/json

{
  "title": "Replaced Title"
}

Example:

maton google-tasks tasklist update <tasklistId> --title 'Replaced Title' --replace

Delete Task List

DELETE /google-tasks/tasks/v1/users/@me/lists/{tasklistId}

Example:

maton google-tasks tasklist delete <tasklistId>

Tasks

List Tasks

GET /google-tasks/tasks/v1/lists/{tasklistId}/tasks?showCompleted=true

Query Parameters:

  • maxResults - Maximum number of tasks to return (default: 20, max: 100)
  • pageToken - Token for pagination
  • showCompleted - Include completed tasks (default: true)
  • showDeleted - Include deleted tasks (default: false)
  • showHidden - Include hidden tasks (default: false)
  • dueMin - Lower bound for due date (RFC 3339 timestamp)
  • dueMax - Upper bound for due date (RFC 3339 timestamp)
  • completedMin - Lower bound for completion date (RFC 3339 timestamp)
  • completedMax - Upper bound for completion date (RFC 3339 timestamp)
  • updatedMin - Lower bound for last update time (RFC 3339 timestamp)

Example:

maton google-tasks task list -l <tasklistId> --show-completed

Get Task

GET /google-tasks/tasks/v1/lists/{tasklistId}/tasks/{taskId}

Example:

maton google-tasks task view <taskId> -l <tasklistId>

Create Task

POST /google-tasks/tasks/v1/lists/{tasklistId}/tasks
Content-Type: application/json

{
  "title": "New Task",
  "notes": "Task description",
  "due": "2026-03-01T00:00:00.000Z"
}

Query Parameters (optional):

  • parent - Parent task ID (for subtasks)
  • previous - Previous sibling task ID (for positioning)

Example:

maton google-tasks task create -l <tasklistId> --title 'New Task' --notes 'Task description' --due 2026-03-01

Update Task (PATCH - partial update)

PATCH /google-tasks/tasks/v1/lists/{tasklistId}/tasks/{taskId}
Content-Type: application/json

{
  "title": "Updated Task Title",
  "status": "completed"
}

Example:

maton google-tasks task update <taskId> -l <tasklistId> --title 'Updated Task Title' --status completed

Update Task (PUT - full replace)

PUT /google-tasks/tasks/v1/lists/{tasklistId}/tasks/{taskId}
Content-Type: application/json

{
  "title": "Replaced Task",
  "notes": "New notes",
  "status": "needsAction"
}

Example:

maton google-tasks task update <taskId> -l <tasklistId> --title 'Replaced Task' --notes 'New notes' --status needsAction --replace

Delete Task

DELETE /google-tasks/tasks/v1/lists/{tasklistId}/tasks/{taskId}

Example:

maton google-tasks task delete <taskId> -l <tasklistId>

Move Task

Reposition a task within a task list or change its parent.

POST /google-tasks/tasks/v1/lists/{tasklistId}/tasks/{taskId}/move

Query Parameters (optional):

  • parent - New parent task ID (for making it a subtask)
  • previous - Previous sibling task ID (for positioning after this task)

Example:

maton google-tasks task move <taskId> -l <tasklistId> --previous <siblingTaskId>

Clear Completed Tasks

Delete all completed tasks from a task list.

POST /google-tasks/tasks/v1/lists/{tasklistId}/clear

Example:

maton google-tasks tasklist clear <tasklistId>

Task Resource Fields

FieldTypeDescription
--------------------------
kindstringAlways "tasks#task" (output only)
idstringTask identifier
etagstringETag of the resource
titlestringTask title (max 1024 characters)
updatedstringLast modification time (RFC 3339, output only)
selfLinkstringURL to this task (output only)
parentstringParent task ID (output only)
positionstringPosition among siblings (output only)
notesstringTask notes (max 8192 characters)
statusstring"needsAction" or "completed"
duestringDue date (RFC 3339 timestamp)
completedstringCompletion date (RFC 3339, output only)
deletedbooleanWhether task is deleted
hiddenbooleanWhether task is hidden
linksarrayCollection of links (output only)
webViewLinkstringLink to task in Google Tasks UI (output only)

Task List Resource Fields

FieldTypeDescription
--------------------------
kindstringAlways "tasks#taskList" (output only)
idstringTask list identifier
etagstringETag of the resource
titlestringTask list title (max 1024 characters)
updatedstringLast modification time (RFC 3339, output only)
selfLinkstringURL to this task list (output only)

Pagination

Google Tasks uses token-based pagination. The CLI automatically paginates with '--paginate'.

Example:

maton google-tasks task list -l <tasklistId> --paginate

Code Examples

CLI

# List all task lists
maton google-tasks tasklist list

# Filter with jq — e.g., extract task list titles
maton google-tasks tasklist list --json --jq '.items[].title'

# Create a task with a due date
maton google-tasks task create -l <tasklistId> --title 'Write spec' --due 2026-12-01

JavaScript

// List all task lists
const response = await fetch(
  'https://api.maton.ai/google-tasks/tasks/v1/users/@me/lists',
  {
    headers: {
      'Authorization': `Bearer ${process.env.MATON_API_KEY}`
    }
  }
);

// Create a new task
const createResponse = await fetch(
  `https://api.maton.ai/google-tasks/tasks/v1/lists/${tasklistId}/tasks`,
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.MATON_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      title: 'New Task',
      notes: 'Task description',
      due: '2026-03-01T00:00:00.000Z'
    })
  }
);

Python

import os
import requests

# List all task lists
response = requests.get(
    'https://api.maton.ai/google-tasks/tasks/v1/users/@me/lists',
    headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'}
)

# Create a new task
create_response = requests.post(
    f'https://api.maton.ai/google-tasks/tasks/v1/lists/{tasklist_id}/tasks',
    headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'},
    json={
        'title': 'New Task',
        'notes': 'Task description',
        'due': '2026-03-01T00:00:00.000Z'
    }
)

Notes

  • Task list IDs and task IDs are opaque strings (base64-encoded)
  • Status values are "needsAction" or "completed"
  • Due dates are RFC 3339 timestamps
  • Maximum title length: 1024 characters
  • Maximum notes length: 8192 characters
  • IMPORTANT: When using curl commands, use curl -g when URLs contain brackets to disable glob parsing
  • IMPORTANT: When piping curl output to jq or other commands, environment variables like $MATON_API_KEY may not expand correctly in some shell environments. You may get "Invalid API key" errors when piping.

Error Handling

StatusMeaning
-----------------
400Missing Google Tasks connection
401Invalid or missing Maton API key
404Task or task list not found
429Rate limited
4xx/5xxPassthrough error from Google Tasks API

Troubleshooting: API Key Issues

CLI:

  1. Check your auth state:
maton whoami
  1. Verify the API key is valid by listing connections:
maton connection list

Manual:

  1. Check that the MATON_API_KEY environment variable is set:
echo $MATON_API_KEY
  1. Verify the API key is valid by listing connections:
python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.maton.ai/connections')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Troubleshooting: Invalid App Name

  1. Ensure your URL path starts with google-tasks. For example:
  • Correct: https://api.maton.ai/google-tasks/tasks/v1/users/@me/lists
  • Incorrect: https://api.maton.ai/tasks/v1/users/@me/lists

Resources

版本历史

共 3 个版本

  • v1.0.5 当前
    2026-05-08 12:04 安全 安全
  • v1.0.4
    2026-05-03 02:24 安全 安全
  • v1.0.3
    2026-03-27 23:51 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

productivity

Word / DOCX

ivangdavila
创建、检查和编辑 Microsoft Word 文档及 DOCX 文件,支持样式、编号、修订记录、表格、分节符及兼容性检查等功能。
★ 437 📥 147,168
productivity

Nano Pdf

steipete
使用nano-pdf CLI通过自然语言指令编辑PDF
★ 274 📥 114,720
developer-tools

API Gateway

byungkyu
通过 Maton 管理的 API 路由连接外部服务;仅在用户指定目标应用、账户和任务后使用;以读取/列...
★ 392 📥 103,029