On a schedule
Catch Harvest timers left running in the evening
At 7pm you get a list of any timers still going, with the person, project and hours so far, and no email when there are none.
- Runs
- On a schedule
- Apps
- Harvest
- AI
- Not needed
- Access
- read (admin/manager to see others)
Send this to your assistant
Create a ClickRuntime automation: every weekday at 7pm, email me any Harvest timers still running, showing who started it, the project and how long it has been on.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Harvest timers are easy to start and easy to forget. A designer starts the clock for a client call at 4:30, gets pulled into something else and goes home with the timer still running. By the next morning it shows 17 hours on a project that took one, and the person has to remember what really happened, edit the entry and hope the client was not already invoiced. Inflated time damages trust, and underreported time costs money.
At 7 pm, running time entries are listed and, if any are found, one email names each person, the project and how many hours the timer has been going. If no timers are running, no email is sent, so a quiet evening stays quiet.
It is useful for teams that bill clients by the hour and for freelancers who juggle several projects in one day.
What you get out of it
Billing errors are caught before invoicing
A timer left running overnight adds hours that never happened. Fixing it the same evening keeps inflated time from reaching a client's invoice. Credit notes and awkward client explanations are avoided altogether.
Timesheets stay believable
Clients who see a 17-hour day on a one-hour task start questioning every entry. Clean data protects the credibility of your reports and your relationship. Trust is hard to rebuild once a client suspects padded hours.
Corrections are easy while memory is fresh
If someone remembers they stopped working at 5:15 pm, the correction takes seconds. Waiting a week makes the right number a guess. The correct number is a quick edit when the day is still clear in the person's head.
Utilization numbers are not distorted
Reports on billable utilization and project cost assume that time entries reflect real work. A few runaway timers can skew a whole month's figures. Clean entries keep the reports your leadership relies on honest.
Only noisy when it matters
With no email when nothing is running, the message is rare enough to be read, and it is clear that action is needed. People tend to read an email that only comes when something is wrong.
Less end-of-month cleanup
Finance no longer spends time hunting for impossible 20-hour entries before invoices go out. Most timer slips are fixed within a day, so month-end review is about real questions and not about repairing the basics.
How it works
What happens, step by step
Every weekday at 7 pm, ClickRuntime looks for Harvest timers that are still running.
For each one it notes who is tracking, the project and client, and how many hours have built up so far.
If any are found, you get an email listing them so the hours can be fixed before they reach a timesheet. If none are running, nothing is sent.
Before it runs live
- Connect Harvest
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 Harvest steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, notify
ACCOUNT_ID = "123456" # your Harvest account id
@on_trigger
def run(event):
resp = http.get(
"https://api.harvestapp.com/v2/time_entries",
params={"is_running": "true"},
headers={"Authorization": f"Bearer {credentials.secret('HARVEST_TOKEN')}",
"Harvest-Account-Id": ACCOUNT_ID, "User-Agent": "ClickRuntime"},
)
resp.raise_for_status()
running = resp.json()["time_entries"]
if not running:
return {"running": 0}
lines = [f"- {t['user']['name']}: {t['project']['name']} ({t['client']['name']}), {t['hours']:.1f} h so far"
for t in running]
notify.email_me(f"{len(running)} Harvest timers still running", "\n".join(lines))
return {"running": len(running)}FAQ
Common questions
Who receives the email?
Can it stop the timer for me?
Why 7 pm?
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
Find out who didn't log their hours yesterday
Each weekday morning your channel lists the people whose tracked time for the previous day fell short.
See how it worksGet Friday's hours by project and person
At the end of each week you receive the hours your team logged, split by project and by person.
See how it worksHear when a project uses 80% of its budget
You get one email for each project that crosses 80% of its budget, early enough to talk to the client.
See how it worksKeep exploring
Set up “Catch Harvest timers left running in the evening” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
