---
name: asana-my-tasks-today
description: "Weekday mornings: your Asana tasks due today and the ones already overdue, in the order to do them, with the first one to start on. Use when the user asks for this, or when it runs on a schedule."
---

# Asana my tasks today

Weekday mornings: your Asana tasks due today and the ones already overdue, in the order to do them, with the first one to start on.

My Tasks in Asana shows everything assigned to you, sorted however you last left it. On a busy morning the question is narrower: what is due today, what slipped, and which one first.

The agent pulls your open tasks across projects, keeps the ones due today or earlier, and orders them: overdue first, then by your Priority field if you have one, then by time of day. The card says where to start, and which overdue task has been pushed so often that it needs a real new date.

## Two ways to get the data

Use the API or MCP route when you have an MCP server, a CLI or an API token for the app. Otherwise, if you can drive a browser the user is signed in to (Claude in Chrome, a Playwright or Chrome DevTools MCP server), use the browser route. Say which one you used.

## Route A: API or MCP server

### What you need

- Your own Asana account through the Asana MCP server or connector, or a personal access token in `ASANA_ACCESS_TOKEN`; read access is enough.

If something is missing, say what and stop; do not invent numbers.

### Steps

1. **Find your workspace** (Asana): Call `GET /users/me` for your gid and workspaces, and use the workspace you work in (or each of them, one card per workspace).
2. **Pull your open tasks** (Asana): Call `GET /tasks?assignee=me&workspace={workspace_gid}&completed_since=now&opt_fields=name,due_on,due_at,projects.name,custom_fields.name,custom_fields.display_value,permalink_url`. Asana requires the workspace whenever you filter by assignee.
3. **Keep today and overdue** (Asana): Keep tasks with `due_on` today or earlier, or a `due_at` before midnight in your timezone. For the overdue ones, count the `due_date_changed` stories from `GET /tasks/{task_gid}/stories`.
4. **Put them in order**: Overdue first with the oldest due date on top, then a Priority custom field (High, Medium, Low) if your workspace has one, then tasks with a due time in time order, then the rest by project.
5. **Write the list**: A numbered list with project, due and priority, the task to start on, and a note on any task whose due date has moved three times or more.

## Route B: the browser

### What you need

- Signed in to your own Asana account; My tasks only ever shows the signed-in person's tasks, so no extra permission is needed.

If something is missing, say what and stop; do not invent numbers.

### Steps

Start at https://app.asana.com/. The user is signed in already; never type passwords or codes, and ask if a sign-in page appears.

1. **Open My tasks**: Click **My tasks** in the left sidebar and switch to the **List** tab. If you belong to several workspaces, pick the one to report on from the switcher at the top left; My tasks is per workspace.
2. **Keep today and overdue**: Click **Filter** and choose **Incomplete tasks**, then **Sort: Due date**. Read every task whose due date is today or earlier; tasks with no due date drop to the bottom and are left out. Show the **Projects** and **Priority** columns through the **+** at the end of the header if they are hidden.
3. **Check how often the overdue ones moved**: Open each overdue task and scroll its activity at the bottom; count the "changed the due date" entries. Three or more earns a note.
4. **Order and write the list**: Overdue first with the oldest due date on top, then by Priority (High, Medium, Low), then tasks with a due time in time order, then the rest by project. Name the task to start with and why.

Note: My tasks shows one workspace at a time; switch workspaces and repeat for another. The activity feed hides older entries behind a **Show more** link on busy tasks, so the agent clicks it before counting.

## The report

- How many tasks are due today and how many are overdue.
- The list in order: task, project, due, priority.
- The task to start with, and why.
- Tasks whose due date keeps moving.

## Post it to Briefkin

When `BRIEFKIN_TOKEN` is set, or `~/.config/briefkin/env` exists (the installer from https://briefkin.dev/docs writes it), also send the result to the user's Briefkin board as one card. Keep the `item_key` the same on every run so the card updates in place, use a new `event_id` per run, and put today's real numbers in place of the example ones. If the request fails, say so once and carry on.

```bash
[ -n "${BRIEFKIN_TOKEN:-}" ] || . ~/.config/briefkin/env
curl -sS -X POST "${BRIEFKIN_URL:-https://briefkin.dev}/v1/events" \
  -H "authorization: Bearer $BRIEFKIN_TOKEN" \
  -H "content-type: application/json" \
  -d @- <<'JSON'
{
  "v": 1,
  "event_id": "asana-my-tasks-today/<date of this run, e.g. 2026-10-16>",
  "item_key": "asana-my-tasks-today",
  "project": "Acme",
  "source": "Asana my tasks today skill",
  "kind": "update",
  "title": "7 tasks today, 2 of them overdue",
  "summary": "Start with **Send revised quote to Fieldstone**: overdue since Wednesday and marked High.",
  "widget": [
    {
      "type": "Table",
      "props": {
        "columns": [
          "#",
          "Task",
          "Project",
          "Due",
          "Priority"
        ],
        "rows": [
          [
            1,
            "Send revised quote to Fieldstone",
            "Sales",
            "Overdue 2 days",
            "High"
          ],
          [
            2,
            "Review Q1 hiring plan",
            "Ops",
            "Overdue 1 day",
            "Medium"
          ],
          [
            3,
            "Approve homepage hero copy",
            "Website relaunch",
            "Today 11:00",
            "High"
          ],
          [
            4,
            "Outline the board update",
            "Board",
            "Today",
            "High"
          ],
          [
            5,
            "Sign off on September close",
            "Finance",
            "Today",
            "Medium"
          ],
          [
            6,
            "Reply to podcast invite",
            "Marketing",
            "Today",
            "Low"
          ],
          [
            7,
            "Submit offsite expenses",
            "Ops",
            "Today",
            "Low"
          ]
        ]
      }
    },
    {
      "type": "Callout",
      "props": {
        "text": "Review Q1 hiring plan has had its due date moved 3 times. Give it a fixed slot today or a realistic new date.",
        "tone": "warn"
      }
    }
  ]
}
JSON
```

Widgets come from the Briefkin catalog (https://briefkin.dev/v1/catalog). Without a token, just give the user the report.

## Run it on a schedule

Suggested: Weekdays at 8:00 (`0 8 * * 1-5`). From cron, with the agent signed in on that machine:

```bash
0 8 * * 1-5 claude -p "Run the asana-my-tasks-today skill"
# Codex: codex exec, Gemini CLI: gemini -p, Copilot CLI: copilot -p, OpenCode: opencode run
```

Or use the agent's own scheduler (Claude Code routines, Codex automations, Claude or ChatGPT scheduled tasks): https://briefkin.dev/skills/asana-my-tasks-today#schedule

Source: https://briefkin.dev/skills/asana-my-tasks-today
