Skip to content

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.

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

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

  1. Every weekday at 7 pm, ClickRuntime looks for Harvest timers that are still running.

  2. For each one it notes who is tracking, the project and client, and how many hours have built up so far.

  3. 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

RunsOn a schedule
Catch Harvest timers left running in the eveningtoday, 9:00Succeeded
Email · Timers still running2 Harvest timers still running - Sam Ortiz: Website rebuild (Northwind), 9.4 h so far

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 Harvest 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.
timer_left_running_reminder.pyexample
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?
By default it goes to the address you choose, such as an ops lead. A variation can email each person whose timer is running, though that needs their address, and a team-wide message suits some cultures more than others.
Can it stop the timer for me?
The reminder only tells you. Stopping the timer for someone else would change their data and might lose the correct end time, so the choice is left to the person who knows when they stopped working.
Why 7 pm?
It is an example time that works for a team finishing at 5 or 6. You can move it to match your hours, such as 6 pm for early finishers or 8 pm for a team across time zones, with an approved edit.
What permissions does it need?
read (admin/manager to see others). 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 (on a schedule). 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 “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.