Daily
Get a daily list of tasks due
Each morning you get the rows in your tracker that are due today or overdue.
- Runs
- Daily
- Apps
- Google Sheets
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every weekday at 8am, email me the rows in my Tasks sheet where Due Date is today or earlier and Status isn't Done.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A small events company tracks tasks in a Google Sheet: supplier payments, permit applications, client sign-offs, with a due date and a status column. The sheet is up to date, but nobody opens it on a day when everything is on fire, and a venue deposit that was due Tuesday gets noticed on Friday. The late fee is minor, but the venue's patience is not, and the pattern repeats every busy season.
Each morning, ClickRuntime reads your tracker, parses the date and status columns, keeps the rows that are due today or already overdue and not yet marked done, and emails you the list. If nothing is due, you get no email, or a brief note that all is clear, as you prefer.
Project managers, freelancers, landlords and office managers use it as a daily to-do generated from the tracker they already keep.
What you get out of it
Deadlines surface on the day
A morning email names everything due today, so deposits, filings and sign-offs are done in time. A due date stops being a fact in a cell and becomes something you act on.
Overdue items never disappear
Rows past their date and still open stay in the list until they are marked done. That keeps old commitments in front of you, instead of letting them scroll off the sheet and out of mind.
Late fees and penalties avoided
Missed payments and filings often carry fees or strained relationships. A daily nudge costs nothing compared with a venue withholding a booking or an authority adding a charge. Vendors tend to remember who pays on time.
No new tool to adopt
The tracker stays a Google Sheet that your team already understands. Reminders arrive in email, and nobody has to learn a task manager or move their data to get them.
A calmer start to the day
Knowing in the first minutes what needs doing removes the background worry of forgetting something. You start with a short list and not a vague feeling that a deadline is near.
How it works
What happens, step by step
Every morning ClickRuntime reads the task list in your Google Sheet.
It picks the tasks that are due today or overdue and aren't marked done.
You get an email listing each task with its due date and owner.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
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 Google Sheets steps into one automation
Under the hood
The code that runs this automation
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from datetime import date
from clickruntime import on_trigger, credentials, notify
SHEET_ID = "your-spreadsheet-id"
@on_trigger
def run(event):
sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets()
rows = sheets.values().get(spreadsheetId=SHEET_ID, range="Tasks!A2:D").execute().get("values", [])
today = date.today().isoformat()
due = [f"{task} (due {due_date}, {owner or 'unassigned'})"
for task, owner, due_date, status in ((r + [""] * 4)[:4] for r in rows)
if due_date and due_date <= today and status != "Done"]
if due:
notify.email_me(f"{len(due)} tasks due or overdue", "\n".join(due))
return {"due": len(due)}FAQ
Common questions
What does the email look like?
Can each person get only their own tasks?
How does it know a task is finished?
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
Keep your sheet free of duplicates and bad data
Duplicate rows are removed, names and phone numbers are tidied, and invalid emails are flagged.
See how it worksMonitor your sites and SSL certificates
You're warned when a site in your list is down or its certificate expires within 14 days.
See how it worksGet alerts for upcoming dates in a sheet
You're emailed when a date in your sheet is coming up or a value crosses a limit.
See how it worksKeep exploring
Set up “Get a daily list of tasks due” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.