On a schedule
Get an evening list of what you finished
At night you get an email of everything you completed that day, grouped by project.
- Runs
- On a schedule
- Apps
- Todoist
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every evening at 9pm, email me the Todoist tasks I completed today, grouped by project.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
At the end of a long day it is common to feel you got nothing done, even if you closed fifteen Todoist tasks across three projects. Without a record, you cannot answer a manager asking what you did, or write a stand-up note the next morning. People rummage through the Completed view and try to reconstruct it from memory.
Each evening, this collects the tasks you completed since the start of that day, groups them by project and sends you an email in a tidy list. It runs on a schedule, so the summary is waiting after you log off.
It is useful for freelancers who bill by task, and for anyone who reports daily progress to a lead. Because it arrives after you log off, you do not need to remember anything at the moment you close the laptop.
What you get out of it
A tidy answer to what you did today
The evening email lists completed tasks under each project, so a stand-up note or status message to your lead is a copy and paste job, not a memory exercise. It takes under a minute to turn into a message.
A feeling of progress on bad days
Seeing twelve finished items written out counters the sense that the day vanished. That small boost matters for motivation, particularly when the biggest task of the day slipped. That matters most when the biggest task of the day slipped.
Material for invoices and timesheets
Freelancers can use the project grouping to see what went into a client's work that day. It speeds up billing and reduces disputes about what was actually delivered. It speeds up billing and avoids arguments later.
Easier to spot where time went
If a project that should have taken the afternoon has nothing completed, the digest makes that visible the same evening, while you can still adjust tomorrow's plan. You can correct course while the details are still fresh in your mind.
A searchable daily history
Each digest stays in your inbox, so you can search months later for when a task was finished. That is quicker than scrolling Todoist's completed list and works even if you archive projects.
How it works
What happens, step by step
Every evening at 9, ClickRuntime collects the Todoist tasks you completed today.
It groups them by project.
You get one email listing everything you finished, with the total in the subject line.
Before it runs live
- Connect Todoist
What you get
Build your own
Need it to work differently?
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 Todoist steps into one automation
Under the hood
The code that runs this automation
from collections import defaultdict
from datetime import datetime, timezone
from clickruntime import on_trigger, notify, http, credentials
API = "https://api.todoist.com/api/v1"
@on_trigger
def run(event):
headers = {"Authorization": "Bearer " + credentials.connection("todoist", "main")}
now = datetime.now(timezone.utc)
start = now.replace(hour=0, minute=0, second=0, microsecond=0)
items = http.get(f"{API}/tasks/completed/by_completion_date", headers=headers, params={
"since": start.strftime("%Y-%m-%dT%H:%M:%SZ"), "until": now.strftime("%Y-%m-%dT%H:%M:%SZ"), "limit": 200,
}).json()["items"]
projects = {p["id"]: p["name"] for p in http.get(f"{API}/projects", headers=headers).json()["results"]}
groups = defaultdict(list)
for t in items:
groups[projects.get(t["project_id"], "Other")].append(f" ✓ {t['content']}")
body = "\n\n".join(f"{p}\n" + "\n".join(lines) for p, lines in sorted(groups.items()))
notify.email_me(f"Done today: {len(items)} tasks", body or "No tasks completed today.")
return {"completed": len(items)}FAQ
Common questions
Does it include tasks completed by teammates?
What time does the evening digest arrive?
Are recurring tasks counted when I complete them?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Start every day with a fresh routine list
Yesterday's unfinished routine tasks are cleared and today's set is created before you wake up.
See how it worksHide far-off tasks until they're close
Tasks due weeks away stay out of sight and come back to their project three days before they're due.
See how it worksGet a Friday review of your week in Todoist
Friday afternoon brings a list of the week's completed tasks, day by day, without the projects you excluded.
See how it worksKeep exploring
Set up “Get an evening list of what you finished” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.