Skip to content

Daily

Move overdue Asana tasks to today

Each morning your overdue tasks are due today again, old completed tasks are cleared out, and you get a summary.

Runs
Daily
Apps
Asana
AI
Not needed
Access
read+write

Send this to your assistant

Create a ClickRuntime automation: every weekday at 7am, move my overdue Asana tasks to today, delete tasks completed more than 30 days ago, and email me a summary of what changed.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Over a few months, a personal Asana list fills with debris. Tasks you meant to do last week carry due dates from March, so the My Tasks view is mostly red and no longer tells you what matters today. At the same time, hundreds of completed tasks from old projects sit in the workspace, slowing searches and making reports harder to read. Cleaning it up by hand is the kind of chore people postpone forever.

Each day, ClickRuntime lists your incomplete tasks that are past due and moves their due date to today, so your list shows what is realistic. It also finds long-completed tasks and deletes them. When the run is done, you receive an email that says how many tasks were moved and which were removed.

It suits individuals who prefer a clean today list over a historical record of every missed date.

What you get out of it

  • Today's list reflects today's reality

    Instead of a wall of red dates, you see tasks that are now due. That makes planning the day a matter of picking from a short list, not wading through old promises.

  • Missed dates stop causing guilt

    Constant red markers make people avoid their list. Rolling dates forward each day removes that pressure and lets you keep using Asana as a working tool, not as a record of failure.

  • Searches and reports get faster

    Removing old completed tasks reduces clutter in search results and in exported data. When you look for a task from last week, you do not scroll through hundreds of irrelevant results.

  • You still see exactly what changed

    The summary email lists every task that was moved or deleted, so nothing disappears without a record. If a deleted task mattered, you know its name and can ask to restore it.

  • Maintenance happens without willpower

    Chores that are never urgent never get done. A scheduled cleanup takes care of itself and keeps your workspace usable year after year. Your workspace stays usable for years without a big cleanup day.

How it works

What happens, step by step

  1. Every day, ClickRuntime finds your unfinished Asana tasks with a due date in the past.

  2. It moves each of those due dates to today, so nothing sits silently overdue.

  3. It also finds tasks you completed a long time ago and deletes them.

  4. You get an email saying how many tasks were moved and deleted, with their names.

Before it runs live

  • Connect Asana

What you get

RunsDaily
Move overdue Asana tasks to todaytoday, 9:00Succeeded
Email · Asana tidy-upAsana: 3 moved to today, 7 deleted Moved: Send Acme proposal · Review Q4 budget

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Asana steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
reschedule_overdue_tasks_and_clean_up_completed_ones.pyexample
from datetime import date, timedelta
from clickruntime import on_trigger, http, credentials, notify

WORKSPACE = "WORKSPACE_GID"

def asana(method, path, body=None, **params):
    r = http.request(method, f"https://app.asana.com/api/1.0{path}", params=params,
                     json={"data": body} if body else None,
                     headers={"Authorization": f"Bearer {credentials.secret('ASANA_TOKEN')}"})
    r.raise_for_status()
    return r.json().get("data")

@on_trigger
def run(event):
    today = date.today()
    old = today - timedelta(days=30)
    tasks = asana("GET", "/tasks", assignee="me", workspace=WORKSPACE,
                  completed_since=old.isoformat(), opt_fields="name,due_on,completed,completed_at")
    moved, deleted = [], []
    for t in tasks:
        if not t["completed"] and t["due_on"] and t["due_on"] < today.isoformat():
            asana("PUT", f"/tasks/{t['gid']}", {"due_on": today.isoformat()})
            moved.append(t["name"])
        elif t["completed"] and t["completed_at"] and t["completed_at"][:10] < old.isoformat():
            asana("DELETE", f"/tasks/{t['gid']}")
            deleted.append(t["name"])
    notify.email_me(f"Asana: {len(moved)} moved to today, {len(deleted)} deleted",
                    "Moved:\n" + "\n".join(moved) + "\n\nDeleted:\n" + "\n".join(deleted))
    return {"moved": len(moved), "deleted": len(deleted)}

FAQ

Common questions

How old does a completed task have to be before it is deleted?
You set the cutoff, for example 90 days after completion. Tasks completed more recently are left alone. Because deletion cannot be undone in Asana, many people start with a longer cutoff and the summary email, then shorten it once they trust the result.
Will it move tasks that other people own?
The search covers your own incomplete tasks, so tasks assigned to colleagues keep their dates. Rescheduling someone else's work without their knowledge would cause confusion, so the flow is built around the person who sets it up.
What if I want to keep the original due date?
Moving a due date overwrites it, and Asana does not keep a field for the old one. If history matters to you, ask your AI assistant to include the old date in the email or to add it to the task notes before the change.
What permissions does it need?
read+write. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (daily). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Move overdue Asana tasks to today” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.