{"id":"cca074a7-a56e-433d-916a-40f2d32add5e","shortId":"6F5ddA","kind":"skill","title":"google-tasks","tagline":"Read and manage Google Tasks task lists and individual tasks via the Tasks v1 REST API. Use when the user mentions Google Tasks, todo / pending / overdue tasks, weekly task recap, grouping todos by list, adding or completing a task, or moving / deleting tasks.","description":"Drive Google Tasks via `curl + jq`. The user's OAuth bearer token is\nin `$GOOGLE_TASKS_TOKEN`; every call needs it as\n`Authorization: Bearer $GOOGLE_TASKS_TOKEN`. At minimum the token\ncarries `tasks.readonly` plus the identity scopes\n(`openid email profile`); if the user opted in to write at install\ntime it also carries the broader `tasks` scope (read + write).\n\nThe Tasks API returns standard JSON; failures surface as\n`{\"error\": {\"code\": 401|403|..., \"message\": \"...\"}}` — show that\nerror verbatim. `401` means the token expired (re-install). `403\ninsufficientPermissions` on a write means the user only granted\n`tasks.readonly` — ask them to re-install with the read+write box\nchecked.\n\n**Always start with `users/@me/lists`** to discover which task lists\nthe account has — the user's default plus any extras they created on\ncalendar.google.com or in the Tasks app.\n\n**Before bulk creates / completions / deletes** echo the exact\ntitles back to the user and ask them to confirm. Don't trash a\ntask by guessing an id.\n\n## Recipes\n\n### Verify auth + list all task lists (always run first)\n\n```sh\ncurl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  \"https://tasks.googleapis.com/tasks/v1/users/@me/lists\" \\\n  | jq '.items[] | {id, title, updated}'\n```\n\nThe default list is usually titled \"我的任务\" / \"My Tasks\" but the\n**id** (a long opaque string like `MTAxMjM0NTY3OA`) is what every\nsubsequent `lists/{id}/tasks` call needs.\n\n### List all unfinished tasks across every list\n\n```sh\ncurl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  \"https://tasks.googleapis.com/tasks/v1/users/@me/lists\" \\\n  | jq -r '.items[] | \"\\(.id)\\t\\(.title)\"' | while IFS=$'\\t' read LIST_ID LIST_TITLE; do\n    curl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n      --get \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks\" \\\n      --data-urlencode 'showCompleted=false' \\\n      --data-urlencode 'maxResults=100' \\\n      | jq --arg list \"$LIST_TITLE\" '.items[]? | {list: $list, title, due, status, notes}'\n  done | jq -s '. | sort_by(.due // \"9999\")'\n```\n\n`showCompleted=false` filters out done items at the API level. The\ndefault `showCompleted=true&showHidden=false` returns done tasks too.\n\n### Pending tasks in one specific list, sorted by due date\n\n```sh\nLIST_ID='MTAxMjM0NTY3OA'\ncurl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  --get \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks\" \\\n  --data-urlencode 'showCompleted=false' \\\n  --data-urlencode 'maxResults=100' \\\n  | jq '.items // [] | sort_by(.due // \"9999\") | .[] | {title, due, notes, status, position}'\n```\n\n`position` is the user's drag-to-reorder rank inside the list — useful\nwhen the user says \"what's at the top of my tasks\". Tasks without a\n`due` field are open-ended.\n\n### Tasks due today\n\n```sh\nTODAY=$(date -u +%Y-%m-%d)\nTOMORROW=$(date -u -d \"+1 day\" +%Y-%m-%d 2>/dev/null \\\n  || date -u -v+1d +%Y-%m-%d)\nTODAY_START=\"${TODAY}T00:00:00.000Z\"\nTOMORROW_START=\"${TOMORROW}T00:00:00.000Z\"\n\ncurl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  \"https://tasks.googleapis.com/tasks/v1/users/@me/lists\" \\\n  | jq -r '.items[] | \"\\(.id)\\t\\(.title)\"' | while IFS=$'\\t' read LIST_ID LIST_TITLE; do\n    curl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n      --get \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks\" \\\n      --data-urlencode \"dueMin=$TODAY_START\" \\\n      --data-urlencode \"dueMax=$TOMORROW_START\" \\\n      --data-urlencode 'showCompleted=false' \\\n      | jq --arg list \"$LIST_TITLE\" '.items[]? | {list: $list, title, due, notes}'\n  done | jq -s\n```\n\n`dueMin` / `dueMax` are RFC 3339 timestamps. The Tasks API stores\n`due` at midnight UTC, so the local-day window is approximate around\nthe date boundary — that's fine for \"due today\" semantics, mention\nthe caveat only if the user pushes back.\n\n### Overdue tasks (everything still pending with a due date in the past)\n\n```sh\nNOW=$(date -u +%Y-%m-%dT%H:%M:%S.000Z)\ncurl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  \"https://tasks.googleapis.com/tasks/v1/users/@me/lists\" \\\n  | jq -r '.items[] | \"\\(.id)\\t\\(.title)\"' | while IFS=$'\\t' read LIST_ID LIST_TITLE; do\n    curl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n      --get \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks\" \\\n      --data-urlencode \"dueMax=$NOW\" \\\n      --data-urlencode 'showCompleted=false' \\\n      | jq --arg list \"$LIST_TITLE\" '.items[]? | {list: $list, title, due, daysOverdue: (((now * 1000) - (.due | sub(\"Z\"; \"+00:00\") | fromdateiso8601 * 1000)) / 86400000 | floor)}'\n  done | jq -s\n```\n\n### Recently completed tasks (this week, for a recap)\n\n```sh\nONE_WEEK_AGO=$(date -u -d \"-7 days\" +%Y-%m-%dT%H:%M:%S.000Z 2>/dev/null \\\n  || date -u -v-7d +%Y-%m-%dT%H:%M:%S.000Z)\n\ncurl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  \"https://tasks.googleapis.com/tasks/v1/users/@me/lists\" \\\n  | jq -r '.items[] | \"\\(.id)\\t\\(.title)\"' | while IFS=$'\\t' read LIST_ID LIST_TITLE; do\n    curl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n      --get \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks\" \\\n      --data-urlencode 'showCompleted=true' \\\n      --data-urlencode 'showHidden=true' \\\n      --data-urlencode \"completedMin=$ONE_WEEK_AGO\" \\\n      | jq --arg list \"$LIST_TITLE\" '.items[]? | select(.status==\"completed\") | {list: $list, title, completed}'\n  done | jq -s '. | sort_by(.completed)'\n```\n\n`completedMin` / `completedMax` mirror `dueMin`/`Max` and only apply\nto tasks already moved to the \"completed\" state. You **must** pass\n`showCompleted=true` AND `showHidden=true` to see them — Google hides\ncompleted tasks from the default list.\n\n### Get one task's details\n\n```sh\nLIST_ID='MTAxMjM0NTY3OA'\nTASK_ID='dGFza0lkRXhhbXBsZQ'\ncurl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks/$TASK_ID\" \\\n  | jq '{title, due, status, notes, completed, position, links: .links}'\n```\n\n`links` exposes the user's manual hyperlinks (e.g. an attached email\nor Drive doc) — render them as a list to the user when present.\n\n### Pagination\n\n`maxResults` caps at 100 per page. Use `nextPageToken`:\n\n```sh\nLIST_ID='MTAxMjM0NTY3OA'\nPAGE_TOKEN=''\nwhile : ; do\n  RESP=$(curl -sS -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n    --get \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks\" \\\n    --data-urlencode 'maxResults=100' \\\n    --data-urlencode 'showCompleted=false' \\\n    ${PAGE_TOKEN:+--data-urlencode \"pageToken=$PAGE_TOKEN\"})\n  echo \"$RESP\" | jq -c '.items[]?'\n  PAGE_TOKEN=$(echo \"$RESP\" | jq -r '.nextPageToken // empty')\n  [ -z \"$PAGE_TOKEN\" ] && break\ndone\n```\n\n## Write recipes\n\nThese all need the broader `tasks` scope. If the user only granted\n`tasks.readonly` you'll get `403 insufficientPermissions` — surface\nthat and ask them to re-install with the read+write box checked.\n\n### Add a new task\n\n```sh\nLIST_ID='MTAxMjM0NTY3OA'\ncurl -sS -X POST -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  -H 'Content-Type: application/json' \\\n  --data '{\"title\":\"Draft Q2 plan\",\"notes\":\"Outline + risks + asks.\",\"due\":\"2026-05-15T00:00:00.000Z\"}' \\\n  \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks\" \\\n  | jq '{id, title, due, status}'\n```\n\nGoogle stores `due` as midnight UTC of the chosen day — the time of\nday is ignored in the UI. To insert at the very top of the list,\nadd `?previous=` (no value) to the URL.\n\n### Bulk add three tasks under user confirmation\n\n```sh\nLIST_ID='MTAxMjM0NTY3OA'\nDUE='2026-05-12T00:00:00.000Z'\nfor T in 'Reply to Alice' 'Review PR #404' 'Send meeting recap'; do\n  curl -sS -X POST -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n    -H 'Content-Type: application/json' \\\n    --data \"{\\\"title\\\":$(jq -nr --arg t \"$T\" '$t'),\\\"due\\\":\\\"$DUE\\\"}\" \\\n    \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks\" \\\n    | jq -c '{id, title, due}'\ndone\n```\n\nAlways list the titles you're about to create and ask for the user's\ngo-ahead before running this loop — there is no atomic batch endpoint.\n\n### Mark a task complete\n\n```sh\nLIST_ID='MTAxMjM0NTY3OA'\nTASK_ID='dGFza0lkRXhhbXBsZQ'\nNOW=$(date -u +%Y-%m-%dT%H:%M:%S.000Z)\ncurl -sS -X PATCH -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  -H 'Content-Type: application/json' \\\n  --data \"{\\\"status\\\":\\\"completed\\\",\\\"completed\\\":\\\"$NOW\\\"}\" \\\n  \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks/$TASK_ID\" \\\n  | jq '{id, title, status, completed}'\n```\n\nReverse with `{\"status\":\"needsAction\",\"completed\":null}`.\n\n### Edit a task's title / notes / due date\n\n```sh\nLIST_ID='MTAxMjM0NTY3OA'\nTASK_ID='dGFza0lkRXhhbXBsZQ'\ncurl -sS -X PATCH -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  -H 'Content-Type: application/json' \\\n  --data '{\"title\":\"Draft Q2 plan (rev2)\",\"notes\":\"Cover risks + asks + budget.\",\"due\":\"2026-05-20T00:00:00.000Z\"}' \\\n  \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks/$TASK_ID\" \\\n  | jq '{id, title, due, notes}'\n```\n\n### Delete a task\n\n```sh\nLIST_ID='MTAxMjM0NTY3OA'\nTASK_ID='dGFza0lkRXhhbXBsZQ'\ncurl -sS -X DELETE -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks/$TASK_ID\" \\\n  -o /dev/null -w 'HTTP %{http_code}\\n'\n```\n\n`204` = success. There is no soft-delete — once gone the task is\ngone. Echo the title back before deleting.\n\n### Re-order: move a task to a position\n\n```sh\nLIST_ID='MTAxMjM0NTY3OA'\nTASK_ID='dGFza0lkRXhhbXBsZQ'\nPREV='dGFza0lkUHJldg'  # task id this one should appear AFTER; omit to move to top\ncurl -sS -X POST -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  --data '' \\\n  \"https://tasks.googleapis.com/tasks/v1/lists/$LIST_ID/tasks/$TASK_ID/move?previous=$PREV\" \\\n  | jq '{id, title, parent, position}'\n```\n\nUse `?parent=...` instead of `?previous=...` to nest a task under\nanother task as a sub-task.\n\n### Create a brand-new task list\n\n```sh\ncurl -sS -X POST -H \"Authorization: Bearer $GOOGLE_TASKS_TOKEN\" \\\n  -H 'Content-Type: application/json' \\\n  --data '{\"title\":\"Q2 follow-ups\"}' \\\n  \"https://tasks.googleapis.com/tasks/v1/users/@me/lists\" \\\n  | jq '{id, title}'\n```\n\n## Common error codes\n\n| HTTP | meaning | what to tell the user |\n|---|---|---|\n| `401 UNAUTHENTICATED` | token expired / revoked | \"Reconnect the Google Tasks connector on the Connections page.\" |\n| `403 insufficientPermissions` | write scope missing | \"This action needs the Tasks read+write scope, but only `tasks.readonly` was granted. Re-install the connector with the read+write box checked.\" |\n| `404 notFound` | wrong list / task id | re-list with `users/@me/lists` to find the right id. |\n| `429 quotaExceeded` | quota / throttling | back off ~5s, then retry once. |\n\nNever log or echo `$GOOGLE_TASKS_TOKEN` — treat it as a secret.","tags":["google","tasks","skills","acedatacloud","acedata-cloud","agent-skills","agentskills","ai-image","ai-music","ai-tools","ai-video","claude-code"],"capabilities":["skill","source-acedatacloud","skill-google-tasks","topic-acedata-cloud","topic-agent-skills","topic-agentskills","topic-ai-image","topic-ai-music","topic-ai-tools","topic-ai-video","topic-claude-code","topic-cursor","topic-gemini-cli","topic-github-copilot","topic-mcp"],"categories":["Skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/AceDataCloud/Skills/google-tasks","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add AceDataCloud/Skills","source_repo":"https://github.com/AceDataCloud/Skills","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 7 github stars · SKILL.md body (10,704 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:14:02.602Z","embedding":null,"createdAt":"2026-05-18T13:21:33.002Z","updatedAt":"2026-05-18T19:14:02.602Z","lastSeenAt":"2026-05-18T19:14:02.602Z","tsv":"'+00':682 '+1':456,466 '-05':1027,1089,1267 '-12':1090 '-15':1028 '-20':1268 '-7':706 '/dev/null':462,715,1305 '/tasks':262 '/tasks/v1/lists/$list_id/tasks':310,385,522,655,764,921,1035,1135 '/tasks/v1/lists/$list_id/tasks/$task_id':858,1212,1275,1303 '/tasks/v1/lists/$list_id/tasks/$task_id/move?previous=$prev':1374 '/tasks/v1/users/@me/lists':232,283,495,628,737,1428 '00':475,482,683,1030,1092,1270 '00.000':476,483,1031,1093,1271 '100':320,395,896,926 '1000':678,685 '2':461,714 '2026':1026,1088,1266 '204':1311 '3339':558 '401':117,124,1442 '403':118,132,976,1456 '404':1103,1485 '429':1502 '5s':1508 '7d':720 '86400000':686 '9999':339,401 'account':166 'across':269 'action':1462 'ad':38 'add':993,1069,1077 'ago':702,781 'ahead':1159 'alic':1100 'alreadi':811 'also':98 'alway':155,218,1142 'anoth':1390 'api':19,108,348,562 'app':183 'appear':1354 'appli':808 'application/json':1015,1122,1204,1253,1419 'approxim':575 'arg':322,541,667,783,1127 'around':576 'ask':143,198,981,1024,1152,1263 'atom':1167 'attach':877 'auth':213 'author':69,225,276,302,377,488,514,621,647,730,756,851,913,1006,1113,1195,1244,1296,1366,1410 'back':193,595,1328,1506 'batch':1168 'bearer':57,70,226,277,303,378,489,515,622,648,731,757,852,914,1007,1114,1196,1245,1297,1367,1411 'boundari':579 'box':153,991,1483 'brand':1400 'brand-new':1399 'break':956 'broader':101,964 'budget':1264 'bulk':185,1076 'c':943,1137 'calendar.google.com':178 'call':65,263 'cap':894 'carri':78,99 'caveat':589 'check':154,992,1484 'chosen':1049 'code':116,1309,1434 'common':1432 'complet':40,187,692,790,794,800,815,830,864,1173,1207,1208,1217,1222 'completedmax':802 'completedmin':778,801 'confirm':201,1082 'connect':1454 'connector':1451,1478 'content':1013,1120,1202,1251,1417 'content-typ':1012,1119,1201,1250,1416 'cover':1261 'creat':176,186,1150,1397 'curl':51,222,273,299,374,485,511,618,644,727,753,848,910,1001,1108,1190,1239,1291,1361,1405 'd':451,455,460,467,470,705 'data':312,317,387,392,524,530,536,657,662,766,771,776,923,928,935,1016,1123,1205,1254,1371,1420 'data-urlencod':311,316,386,391,523,529,535,656,661,765,770,775,922,927,934 'date':369,447,453,463,578,604,610,703,716,1182,1231 'day':457,572,707,1050,1054 'daysoverdu':676 'default':171,239,351,834 'delet':45,188,1281,1294,1318,1330 'detail':840 'dgfza0lkrxhhbxbszq':847,1180,1238,1290,1346 'dgfza0lkuhjldg':1348 'discov':161 'doc':881 'done':333,344,357,551,688,795,957,1141 'draft':1018,1256 'drag':413 'drag-to-reord':412 'drive':47,880 'dt':614,710,723,1186 'due':330,338,368,400,403,436,443,549,564,584,603,675,679,861,1025,1039,1043,1087,1131,1132,1140,1230,1265,1279 'duemax':532,555,659 'duemin':526,554,804 'e.g':875 'echo':189,940,947,1325,1515 'edit':1224 'email':85,878 'empti':952 'end':441 'endpoint':1169 'error':115,122,1433 'everi':64,258,270 'everyth':598 'exact':191 'expir':128,1445 'expos':869 'extra':174 'failur':112 'fals':315,341,355,390,539,665,931 'field':437 'filter':342 'find':1498 'fine':582 'first':220 'floor':687 'follow':1424 'follow-up':1423 'fromdateiso8601':684 'get':307,382,519,652,761,836,918,975 'go':1158 'go-ahead':1157 'gone':1320,1324 'googl':2,7,25,48,61,71,227,278,304,379,490,516,623,649,732,758,828,853,915,1008,1041,1115,1197,1246,1298,1368,1412,1449,1516 'google-task':1 'grant':141,971,1473 'group':34 'guess':208 'h':224,275,301,376,487,513,615,620,646,711,724,729,755,850,912,1005,1011,1112,1118,1187,1194,1200,1243,1249,1295,1365,1409,1415 'hide':829 'http':1307,1308,1435 'hyperlink':874 'id':210,235,249,261,287,295,372,499,507,632,640,741,749,843,846,903,999,1037,1085,1138,1176,1179,1214,1234,1237,1277,1286,1289,1342,1345,1350,1376,1430,1490,1501 'ident':82 'if':291,503,636,745 'ignor':1056 'individu':12 'insert':1061 'insid':417 'instal':95,131,148,986,1476 'instead':1382 'insufficientpermiss':133,977,1457 'item':234,286,326,345,397,498,545,631,671,740,787,944 'jq':52,233,284,321,334,396,496,540,552,629,666,689,738,782,796,859,942,949,1036,1125,1136,1213,1276,1375,1429 'json':111 'level':349 'like':254 'link':866,867,868 'list':10,37,164,214,217,240,260,265,271,294,296,323,324,327,328,365,371,419,506,508,542,543,546,547,639,641,668,669,672,673,748,750,784,785,791,792,835,842,886,902,998,1068,1084,1143,1175,1233,1285,1341,1403,1488,1493 'll':974 'local':571 'local-day':570 'log':1513 'long':251 'loop':1163 'm':450,459,469,613,616,709,712,722,725,1185,1188 'manag':6 'manual':873 'mark':1170 'max':805 'maxresult':319,394,893,925 'me/lists':159,1496 'mean':125,137,1436 'meet':1105 'mention':24,587 'messag':119 'midnight':566,1045 'minimum':75 'mirror':803 'miss':1460 'move':44,812,1334,1358 'mtaxmjm0nty3oa':255,373,844,904,1000,1086,1177,1235,1287,1343 'must':818 'n':1310 'need':66,264,962,1463 'needsact':1221 'nest':1386 'never':1512 'new':995,1401 'nextpagetoken':900,951 'note':332,404,550,863,1021,1229,1260,1280 'notfound':1486 'nr':1126 'null':1223 'o':1304 'oauth':56 'omit':1356 'one':363,700,779,837,1352 'opaqu':252 'open':440 'open-end':439 'openid':84 'opt':90 'order':1333 'outlin':1022 'overdu':29,596 'page':898,905,932,938,945,954,1455 'pagetoken':937 'pagin':892 'parent':1378,1381 'pass':819 'past':607 'patch':1193,1242 'pend':28,360,600 'per':897 'plan':1020,1258 'plus':80,172 'posit':406,407,865,1339,1379 'post':1004,1111,1364,1408 'pr':1102 'present':891 'prev':1347 'previous':1070,1384 'profil':86 'push':594 'q2':1019,1257,1422 'quota':1504 'quotaexceed':1503 'r':285,497,630,739,950 'rank':416 're':130,147,985,1147,1332,1475,1492 're-instal':129,146,984,1474 're-list':1491 're-ord':1331 'read':4,104,151,293,505,638,747,989,1466,1481 'recap':33,698,1106 'recent':691 'recip':211,959 'reconnect':1447 'render':882 'reorder':415 'repli':1098 'resp':909,941,948 'rest':18 'retri':1510 'return':109,356 'rev2':1259 'revers':1218 'review':1101 'revok':1446 'rfc':557 'right':1500 'risk':1023,1262 'run':219,1161 's.000z':617,713,726,1189 'say':424 'scope':83,103,966,1459,1468 'secret':1523 'see':826 'select':788 'semant':586 'send':1104 'sh':221,272,370,445,608,699,841,901,997,1083,1174,1232,1284,1340,1404 'show':120 'showcomplet':314,340,352,389,538,664,768,820,930 'showhidden':354,773,823 'skill' 'skill-google-tasks' 'soft':1317 'soft-delet':1316 'sort':336,366,398,798 'source-acedatacloud' 'specif':364 'ss':223,274,300,375,486,512,619,645,728,754,849,911,1002,1109,1191,1240,1292,1362,1406 'standard':110 'start':156,472,479,528,534 'state':816 'status':331,405,789,862,1040,1206,1216,1220 'still':599 'store':563,1042 'string':253 'sub':680,1395 'sub-task':1394 'subsequ':259 'success':1312 'surfac':113,978 't00':474,481,1029,1091,1269 'task':3,8,9,13,16,26,30,32,42,46,49,62,72,102,107,163,182,206,216,228,246,268,279,305,358,361,380,432,433,442,491,517,561,597,624,650,693,733,759,810,831,838,845,854,916,965,996,1009,1079,1116,1172,1178,1198,1226,1236,1247,1283,1288,1299,1322,1336,1344,1349,1369,1388,1391,1396,1402,1413,1450,1465,1489,1517 'tasks.googleapis.com':231,282,309,384,494,521,627,654,736,763,857,920,1034,1134,1211,1274,1302,1373,1427 'tasks.googleapis.com/tasks/v1/lists/$list_id/tasks':308,383,520,653,762,919,1033,1133 'tasks.googleapis.com/tasks/v1/lists/$list_id/tasks/$task_id':856,1210,1273,1301 'tasks.googleapis.com/tasks/v1/lists/$list_id/tasks/$task_id/move?previous=$prev':1372 'tasks.googleapis.com/tasks/v1/users/@me/lists':230,281,493,626,735,1426 'tasks.readonly':79,142,972,1471 'tell':1439 'three':1078 'throttl':1505 'time':96,1052 'timestamp':559 'titl':192,236,243,289,297,325,329,402,501,509,544,548,634,642,670,674,743,751,786,793,860,1017,1038,1124,1139,1145,1215,1228,1255,1278,1327,1377,1421,1431 'today':444,446,471,473,527,585 'todo':27,35 'token':58,63,73,77,127,229,280,306,381,492,518,625,651,734,760,855,906,917,933,939,946,955,1010,1117,1199,1248,1300,1370,1414,1444,1518 'tomorrow':452,478,480,533 'top':429,1065,1360 'topic-acedata-cloud' 'topic-agent-skills' 'topic-agentskills' 'topic-ai-image' 'topic-ai-music' 'topic-ai-tools' 'topic-ai-video' 'topic-claude-code' 'topic-cursor' 'topic-gemini-cli' 'topic-github-copilot' 'topic-mcp' 'trash':204 'treat':1519 'true':353,769,774,821,824 'type':1014,1121,1203,1252,1418 'u':448,454,464,611,704,717,1183 'ui':1059 'unauthent':1443 'unfinish':267 'up':1425 'updat':237 'url':1075 'urlencod':313,318,388,393,525,531,537,658,663,767,772,777,924,929,936 'use':20,420,899,1380 'user':23,54,89,139,158,169,196,410,423,593,871,889,969,1081,1155,1441,1495 'usual':242 'utc':567,1046 'v':465,719 'v-7d':718 'v1':17 'valu':1072 'verbatim':123 'verifi':212 'via':14,50 'w':1306 'week':31,695,701,780 'window':573 'without':434 'write':93,105,136,152,958,990,1458,1467,1482 'wrong':1487 'x':1003,1110,1192,1241,1293,1363,1407 'y':449,458,468,612,708,721,1184 'z':477,484,681,953,1032,1094,1272 '我的任务':244","prices":[{"id":"1c4dc156-ec77-4bdf-82fe-91043f31b6e3","listingId":"cca074a7-a56e-433d-916a-40f2d32add5e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"AceDataCloud","category":"Skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:21:33.002Z"}],"sources":[{"listingId":"cca074a7-a56e-433d-916a-40f2d32add5e","source":"github","sourceId":"AceDataCloud/Skills/google-tasks","sourceUrl":"https://github.com/AceDataCloud/Skills/tree/main/skills/google-tasks","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:33.002Z","lastSeenAt":"2026-05-18T19:14:02.602Z"}],"details":{"listingId":"cca074a7-a56e-433d-916a-40f2d32add5e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"AceDataCloud","slug":"google-tasks","github":{"repo":"AceDataCloud/Skills","stars":7,"topics":["acedata-cloud","agent-skills","agentskills","ai-image","ai-music","ai-tools","ai-video","claude-code","cursor","gemini-cli","github-copilot","mcp","npm","openai-codex","roo-code"],"license":"other","html_url":"https://github.com/AceDataCloud/Skills","pushed_at":"2026-05-18T07:35:03Z","description":"Agent Skills for AceDataCloud AI services — music, image, video generation, web search, and more. Compatible with Claude Code, GitHub Copilot, Gemini CLI, and all agentskills.io-compatible agents.","skill_md_sha":"3bc70187b40d544c92bc6e83e0c1bc396c8fcdaf","skill_md_path":"skills/google-tasks/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/AceDataCloud/Skills/tree/main/skills/google-tasks"},"layout":"multi","source":"github","category":"Skills","frontmatter":{"name":"google-tasks","license":"Apache-2.0","description":"Read and manage Google Tasks task lists and individual tasks via the Tasks v1 REST API. Use when the user mentions Google Tasks, todo / pending / overdue tasks, weekly task recap, grouping todos by list, adding or completing a task, or moving / deleting tasks."},"skills_sh_url":"https://skills.sh/AceDataCloud/Skills/google-tasks"},"updatedAt":"2026-05-18T19:14:02.602Z"}}