Skip to main content
ollim-bot provides full read/write access to your primary 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.

Prerequisites

  • Google OAuth credentials configured (see Google OAuth setup)
  • Completed the initial OAuth consent flow — the tasks scope is included by default

Setup

No additional setup is required beyond the shared Google OAuth flow. The https://www.googleapis.com/auth/tasks scope is part of the default scope list in google/auth.py. Once you’ve completed the Google integration setup, Tasks is ready to use.

Usage

The ollim-bot tasks subcommand provides five operations.

List tasks

ollim-bot tasks list
Shows incomplete tasks from your default task list. Each line displays the task ID, due date, status checkbox, and title:
  abc123  2026-03-01    [ ]  Buy groceries
  def456  (no due)      [ ]  Call dentist
To include completed and hidden tasks:
ollim-bot tasks list --all

Add a task

ollim-bot tasks add "Buy groceries" --due 2026-03-01 --notes "Milk, eggs, bread"
ArgumentRequiredDescription
title (positional)YesTask title
--dueNoDue date in YYYY-MM-DD format
--notesNoTask notes or description
Due dates are stored as midnight UTC (YYYY-MM-DDT00:00:00.000Z).

Complete a task

ollim-bot tasks done <task_id>

Update a task

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

ollim-bot tasks delete <task_id>
Permanently deletes the task from your Google Tasks list.
All operations use your default task list (@default). ollim-bot does not support multiple task lists.

API helpers

Two functions are exported from google/tasks.py for use by Discord button handlers in views.py:
FunctionSignatureReturns
complete_taskcomplete_task(task_id: str) -> strTask title
delete_taskdelete_task(task_id: str) -> strTask title
Both are called via asyncio.to_thread in the button handlers to avoid blocking the Discord event loop.

Troubleshooting

Your OAuth token may have expired or been revoked. Delete ~/.ollim-bot/state/token.json and run any tasks command to trigger re-authentication.
Task IDs are displayed as the first column in ollim-bot tasks list output. When using embed buttons, the agent encodes the ID into the button action automatically.
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.

Next steps