> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ollim.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Tasks

> Manage Google Tasks through CLI commands and agent-powered embed buttons.

ollim-bot provides full read/write access to a Google Tasks list.
You can list, add, complete, update, and delete tasks through CLI commands,
and the agent can present tasks in Discord embeds with action buttons for
one-click completion or deletion.

By default, ollim-bot targets your default task list (`@default`). Set
the `google_task_list` [runtime config key](/configuration/reference#runtime-configuration)
to point at a different list, or pass `--list <id>` to any command to
override per-invocation.

## Prerequisites

* Google OAuth credentials configured (see [Google integration setup](/getting-started/google-integration))
* Google account connected via [`/google-auth`](/core-usage/slash-commands#google-auth) — the `tasks` scope is included by default

## Setup

No additional setup is required beyond the shared Google OAuth flow. The
`tasks` scope is included by default. Once you've completed the
[Google integration](/integrations/google-overview) setup, Tasks is ready to use.

## Usage

<Tabs>
  <Tab title="CLI">
    The `ollim-bot tasks` subcommand provides six operations.

    Every `tasks` subcommand accepts `--list <id>` to target a specific task
    list for that invocation. When omitted, the configured `google_task_list`
    is used.

    ### List tasks

    ```bash theme={null}
    ollim-bot tasks list
    ```

    Shows incomplete tasks from the configured task list. Each line displays the
    task ID, due date, status checkbox, and title:

    ```text theme={null}
      abc123  2026-03-01    [ ]  Buy groceries [+]
      def456  (no due)      [ ]  Call dentist
    ```

    Tasks with notes display a **\[+]** marker after the title.

    To include completed and hidden tasks:

    ```bash theme={null}
    ollim-bot tasks list --all
    ```

    To list from a specific task list, pass `--list`:

    ```bash theme={null}
    ollim-bot tasks list --list MDc3NDk2NzQ3MTE0MTI2NjU5NzU6MDow
    ```

    ### Show task details

    ```bash theme={null}
    ollim-bot tasks show <task_id>
    ```

    Displays full details for a task — title, status, due date, notes, and ID:

    ```text theme={null}
    title:     Buy groceries
    status:    needs action
    due:       2026-03-01
    notes:     Milk, eggs, bread
    id:        abc123
    ```

    ### Add a task

    ```bash theme={null}
    ollim-bot tasks add "Buy groceries" --due 2026-03-01 --notes "Milk, eggs, bread"
    ```

    | Argument             | Required | Description                                   |
    | -------------------- | -------- | --------------------------------------------- |
    | `title` (positional) | Yes      | Task title                                    |
    | `--due`              | No       | Due date in `YYYY-MM-DD` format               |
    | `--notes`            | No       | Task notes or description                     |
    | `--list`             | No       | Task list ID — defaults to `google_task_list` |

    Due dates are stored as midnight UTC (`YYYY-MM-DDT00:00:00.000Z`).

    ### Complete a task

    ```bash theme={null}
    ollim-bot tasks done <task_id>
    ```

    ### Update a task

    ```bash theme={null}
    ollim-bot tasks update <task_id> --title "Updated title" --due 2026-03-15
    ```

    At least one of `--title`, `--due`, or `--notes` must be provided.

    ### Delete a task

    ```bash theme={null}
    ollim-bot tasks delete <task_id>
    ```

    Permanently deletes the task from the configured task list.
  </Tab>

  <Tab title="Agent">
    The agent interacts with Google Tasks through two mechanisms.

    ### Embed buttons

    When the agent presents tasks in a Discord embed, it can attach action
    buttons:

    * **Complete** — marks the task as completed
    * **Delete** — permanently removes the task

    Clicking a button shows a temporary confirmation only you can see.
    The agent also gets an update so it knows what you did. Buttons honor
    the configured `google_task_list`, and the agent can encode a specific
    list ID into the button action when a task lives in a non-default list.

    ### CLI delegation

    The agent can also run `ollim-bot tasks` subcommands directly for
    operations like listing all tasks, adding new ones, or updating existing
    entries. When a specific task list is relevant, the agent passes
    `--list <id>` — otherwise it uses the configured default.
  </Tab>
</Tabs>

## Configuring the task list

The `google_task_list` runtime config key sets the default task list.
Defaults to `@default` — Google's alias for your primary task list.

To target a different list, set `google_task_list` to its ID. Task list
IDs are Google-generated strings; you can get them from the
[Google Tasks API `tasklists.list` endpoint](https://developers.google.com/tasks/reference/rest/v1/tasklists/list).

See the [configuration reference](/configuration/reference#runtime-configuration)
for how to inspect and change runtime config keys.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Tasks commands return an auth error">
    Your OAuth token may have expired or been revoked. The bot
    detects revocations automatically and prompts you to reconnect — run
    `/google-auth` to re-authenticate.
  </Accordion>

  <Accordion title="How do I find a task ID?">
    Task IDs are displayed as the first column in `ollim-bot tasks list`
    output. When using embed buttons, the agent handles IDs automatically.
  </Accordion>

  <Accordion title="A command targets the wrong task list">
    Commands use `google_task_list` by default (alias `@default`). To check
    which list you've configured, run `/config` with no parameters. To
    target a different list for a single command, pass `--list <id>`.
  </Accordion>

  <Accordion title="Due dates show the wrong day">
    Due dates are stored as midnight UTC. The Google Tasks API and CLI both
    use `YYYY-MM-DD` format. If your local timezone is ahead of UTC, a task
    due "today" may display as yesterday in some Google interfaces.
  </Accordion>
</AccordionGroup>

## Next steps

<Columns cols={2}>
  <Card title="Google Calendar" icon="calendar" href="/integrations/google-calendar">
    Manage calendar events through similar CLI and agent interactions.
  </Card>

  <Card title="Google integration" icon="link" href="/integrations/google-overview">
    Shared OAuth setup and all available Google services.
  </Card>

  <Card title="Embeds & buttons" icon="rectangle-list" href="/core-usage/embeds-and-buttons">
    How the agent builds Discord embeds with action buttons.
  </Card>

  <Card title="CLI reference" icon="terminal" href="/development/cli-reference">
    Full reference for all ollim-bot CLI subcommands.
  </Card>
</Columns>
