# Google Tasks

> Fetch, display, create, and delete Google Tasks using the Google Tasks API. Use when the user asks to check, view, list, get, add, create, remove, or delete their Google Tasks, to-do lists, or task items. Handles OAuth authentication automatically using bash script with curl and jq. Use when this capability is needed.

- Skill: `tomevault-io/google-tasks` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/google-tasks`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/google-tasks/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/google-tasks

---


# Google Tasks Skill

Manage Google Tasks from all task lists using lightweight bash scripts.

## Features

- ✅ **Auto-refresh token**: Automatically refreshes expired OAuth tokens
- ✅ **View all tasks**: Fetch tasks from all task lists
- ✅ **Create tasks**: Add new tasks to any list with optional due date and notes
- ✅ **Delete tasks**: Remove tasks by position or title
- ✅ **Lightweight**: Pure bash, no heavy dependencies
- ✅ **Simple**: Direct REST API calls, easy to understand

## Quick Start

### View tasks
```bash
bash scripts/get_tasks.sh
```

### Create a task
```bash
# Using default list (configured in google-tasks-config.sh)
bash scripts/create_task.sh "Task title" ["due-date"] ["notes"]

# Specifying list name
bash scripts/create_task.sh "List Name" "Task title" ["due-date"] ["notes"]
```

Examples:
```bash
# Simple task (uses default list)
bash scripts/create_task.sh "Buy groceries"

# Task with due date (uses default list)
bash scripts/create_task.sh "Finish report" "2026-02-10"

# Task with specific list
bash scripts/create_task.sh "Work" "Finish report" "2026-02-10"

# Task with list, due date, and notes
bash scripts/create_task.sh "Personal" "Call mom" "2026-02-05" "Ask about her health"
```

**Default list configuration:**
Edit `google-tasks-config.sh` to set your default list:
```bash
DEFAULT_LIST="Private"  # Change to your preferred default
```

### Delete a task
```bash
bash scripts/delete_task.sh "List Name" <task-number-or-title>
```

Examples:
```bash
# Delete by task number (position in list)
bash scripts/delete_task.sh "Work" 2

# Delete by task title
bash scripts/delete_task.sh "Inbox" "Buy groceries"
```

## Requirements

- `jq` - JSON processor (usually pre-installed)
- `curl` - HTTP client (usually pre-installed)
- Valid `token.json` with OAuth access token
- **Scopes required:** `https://www.googleapis.com/auth/tasks` (read + write)

## First-Time Setup

If `token.json` doesn't exist:

1. User needs OAuth credentials (`credentials.json`) - See [setup.md](references/setup.md)
2. Run the Node.js authentication flow first to generate `token.json`
3. Then the bash script can be used for all subsequent calls

## Output Format

```
📋 Your Google Tasks:

📌 List Name
──────────────────────────────────────────────────
  1. ⬜ Task title (due: YYYY-MM-DD)
     Note: Task notes if present
  2. ⬜ Another task

📌 Another List
──────────────────────────────────────────────────
  (no tasks)
```

## File Locations

- `token.json` - Access/refresh tokens (workspace root)
- `google-tasks-config.sh` - Configuration file (default list setting)
- `scripts/get_tasks.sh` - Bash script to view tasks
- `scripts/create_task.sh` - Bash script to create tasks
- `scripts/delete_task.sh` - Bash script to delete tasks
- `references/setup.md` - Detailed setup guide

## Implementation

The bash script uses:
- Google Tasks REST API directly
- `curl` for HTTP requests
- `jq` for JSON parsing
- Bearer token authentication from `token.json`

No Python dependencies required.

## Troubleshooting

**Token expired:**

The skill automatically refreshes expired tokens. If you see refresh errors:
```
Error: Failed to refresh token
```
Delete `token.json` and re-authenticate.

**Manual token refresh:**
```bash
bash scripts/refresh_token.sh
```

**Missing jq:**
```
bash: jq: command not found
```
Install jq: `apt-get install jq` or `brew install jq`

For more details, see [setup.md](references/setup.md).

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/addozhang) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-15 -->

