community/google-tasks

Commands to interact with Google Tasks using the Google Tasks API v1

This package provides aux4 command wrappers for the Google Tasks API (v1). It covers managing task lists and the tasks inside them: listing, reading, creating, updating, completing and deleting.

Authentication is handled by community/google-auth, which stores a single OAuth2 token shared by every aux4 Google package.

Installation

aux4 aux4 pkger install community/google-tasks

System Dependencies

This package requires:

  • jq — used by the tooling that turns command flags into API request bodies
  • brew: brew install jq
  • linux: apt install jq

Prerequisites

Authenticate once with community/google-auth. The scopes are resolved from the installed Google service packages, so no --scopes flag is needed:

aux4 google auth login

This package requests https://www.googleapis.com/auth/tasks, which allows both reading and managing lists and tasks. If you only need read access, request the read-only scope instead — it is enough for lists list, lists get, list and get:

aux4 google auth login --readonly true

Check the current state at any time:

aux4 google auth status

Quick Start

List your task lists:

aux4 google tasks lists list

List the tasks in your primary list:

aux4 google tasks list

Create a task:

aux4 google tasks create --title "Buy milk" --due 2026-08-01T00:00:00.000Z

Mark it done:

aux4 google tasks complete dGFzazEyMw

Task lists

Every account has a primary list addressed as @default. You can create additional lists and address them by ID.

List all task lists:

aux4 google tasks lists list

Get a single list:

aux4 google tasks lists get MDExMjM0NTY3

Create a list:

aux4 google tasks lists create --title "Work"

Delete a list (removes every task it contains — this cannot be undone):

aux4 google tasks lists delete OTg3NjU0MzIx

Tasks

All task commands default to the primary @default list. Pass --tasklist <id> (an ID from aux4 google tasks lists list) to work in a different list.

List tasks

aux4 google tasks list

Completed tasks are hidden by default. Include them and raise the row cap:

aux4 google tasks list --showCompleted true --maxResults 50

Get a task

aux4 google tasks get dGFzazEyMw

Create a task

The only required field is --title. --notes and --due are optional and are omitted from the request when left empty. The --due value is an RFC3339 timestamp; the Google Tasks API stores only its date portion.

aux4 google tasks create --title "Buy milk" --notes "2% and whole" --due 2026-08-01T00:00:00.000Z

Update a task

Sends a partial update, so only the flags you pass are changed:

aux4 google tasks update dGFzazEyMw --title "Buy oat milk" --due 2026-09-01T00:00:00.000Z

Reopen a completed task:

aux4 google tasks update dGFzazEyMw --status needsAction

Complete a task

A shortcut for update --status completed:

aux4 google tasks complete dGFzazEyMw

Delete a task

aux4 google tasks delete dGFzazEyMw

Environment Variables

  • AUX4_GOOGLE_TOKEN_FILE — where the shared Google OAuth token lives. Defaults to ~/.aux4.config/.oauth/google.json, the same location aux4 google auth login writes to, so it normally needs no setting.
  • TASKS_API_URL — overrides the Google Tasks API base URL. Defaults to https://tasks.googleapis.com/tasks/v1. Mainly useful for testing against a mock server.

License

MIT — See LICENSE for details.