On a schedule
Get a written plan for your day
Each morning a short plan built from today's and overdue tasks tells you what to tackle first.
- Runs
- On a schedule
- Apps
- Todoist
- AI
- Yes, uses the built-in AI allowance
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: at 6am every day, take my Todoist tasks due today plus anything overdue, write a short plan for the day with the most important three first, and email it to me.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Opening Todoist at 8 am to a list of thirty tasks, nine of them overdue, is a bad way to start the day. Deciding what to do first takes real effort, and it is common to spend the first hour on something easy while the contract review slides again. Managers and founders with long lists feel this most, because the list never shrinks on its own.
Each morning, this pulls the tasks due today and everything overdue from Todoist, then asks an AI step to write a short plan: what to tackle first, what can be deferred and what looks like it needs a new date. It emails you that plan before you start work.
You can ask for a different tone or a limit on the number of priorities.
What you get out of it
The first decision is already made
A written plan puts one clear task at the top, so you begin working within minutes rather than reordering the list. That saves the willpower you would otherwise burn on deciding.
Overdue items finally get a verdict
The plan calls out old tasks and suggests whether to do, reschedule or drop them. A list stops growing when someone actually decides about the items that have been sitting for weeks.
A realistic look at the day
Reading how many tasks are due against the hours you have gives an early warning that you are overcommitted, which lets you push something out before it becomes a missed deadline.
Short enough to read on a phone
The briefing is a few lines in your inbox, not another app to open. You can read it on the train and arrive at your desk knowing exactly where to start.
No setup of filters to maintain
The query for today and overdue is built in, so there is no custom filter to babysit. If your priorities change, you describe the new emphasis in plain words. You only describe the new emphasis in plain words, and the briefing follows.
How it works
What happens, step by step
Every morning at 6, ClickRuntime gathers your Todoist tasks that are due today or overdue.
AI puts them in a sensible order for the day and adds a short note on why each one matters.
You get your plan for the day by email.
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
- Change what the AI looks for, or how it writes the result
- 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 clickruntime import on_trigger, notify, http, credentials, ai
@on_trigger
def run(event):
tasks = http.get("https://api.todoist.com/api/v1/tasks/filter", headers={
"Authorization": "Bearer " + credentials.connection("todoist", "main"),
}, params={"query": "today | overdue"}).json()["results"]
if not tasks:
notify.email_me("Your plan for today", "Nothing due today and nothing overdue.")
return {"tasks": 0}
listing = "\n".join(f"- {t['content']} (p{5 - t['priority']}, due {(t.get('due') or {}).get('date', '')})" for t in tasks)
plan = ai.generate(
"Write a short plan for my day from these tasks. Put the three most important first with one line on why, "
"then the rest in a sensible order.\n\n" + listing,
max_output_tokens=500,
).text
notify.email_me("Your plan for today", plan)
return {"tasks": len(tasks)}FAQ
Common questions
Does the AI change or reschedule my tasks?
Which tasks does the briefing cover?
Can it send the briefing at a time that suits my shift?
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 an evening list of what you finished
At night you get an email of everything you completed that day, grouped by project.
See how it worksKeep exploring
Set up “Get a written plan for your day” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.