Skip to content

On a schedule

Get your week's hours by client and project

Every Friday afternoon you see where your week went, broken down by client and project in hours.

Runs
On a schedule
Apps
Toggl Track
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every Friday at 4pm, email me my Toggl Track hours for this week, grouped by client and then by project.

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

Agencies and consultants who bill by the hour need to know on Friday whether the week matched the plan. The answer is spread across Toggl Track: you open reports, pick the week, group by client then by project, and mentally convert seconds into hours. A retainer client who was promised ten hours might quietly have received fifteen, and nobody notices until the monthly summary.

Each Friday, this pulls Toggl's weekly summary report, converts the durations from seconds into readable hours and emails you a breakdown by client and project. The week's hours are laid out before you leave for the weekend.

It is useful for account managers who watch retainer hours across several clients. Toggl's summary does the adding, so the email only needs to be read, not calculated. No calculator needed.

What you get out of it

  • Retainers stay within budget

    Seeing hours per client each week shows overruns while there is still time to adjust. You can cut back the following week instead of discovering at month end that you gave away a day of free work.

  • Project-level detail by week

    The breakdown by project tells you which piece of a client engagement is eating time. A website build that suddenly takes twice the hours becomes visible in days, not weeks.

  • Hours you can read at a glance

    Toggl's raw durations are in seconds, which are useless for planning. The report converts them to hours, so you can compare against a quote or retainer without a calculator. That makes the report usable in a meeting rather than a puzzle.

  • Better Monday planning

    Knowing exactly where the week went helps you set priorities for the next one. If a low-value client used a third of your time, Monday's plan can reflect that. Planning becomes faster because it starts from actual numbers.

  • A weekly record for client conversations

    When a client questions the hours, a Friday email from that week is your evidence. It is quicker to find than a re-run of a Toggl report with the right filters.

How it works

What happens, step by step

  1. Every Friday at 4 pm, ClickRuntime pulls this week's tracked time from Toggl Track.

  2. It adds the hours up by client, then breaks each client down by project.

  3. You get an email with each client's total and the hours per project underneath, ready for billing or a team check-in.

Before it runs live

  • Connect Toggl Track

What you get

RunsOn a schedule
Get your week's hours by client and projecttoday, 9:00Succeeded
Email · Weekly hours by clientNorthwind: 14.50 h - Website rebuild: 11.25 h - Support: 3.25 h

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 Toggl Track 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.
weekly_time_report_by_client_project.pyexample
from collections import defaultdict
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, notify

API = "https://api.track.toggl.com/api/v9/me"

@on_trigger
def run(event):
    auth = (credentials.secret("TOGGL_API_TOKEN"), "api_token")
    monday = date.today() - timedelta(days=date.today().weekday())
    entries = http.get(f"{API}/time_entries", auth=auth, params={
        "start_date": monday.isoformat(), "end_date": (date.today() + timedelta(days=1)).isoformat()}).json()
    projects = {p["id"]: p for p in http.get(f"{API}/projects", auth=auth).json() or []}
    clients = {c["id"]: c["name"] for c in http.get(f"{API}/clients", auth=auth).json() or []}
    hours = defaultdict(lambda: defaultdict(float))
    for e in entries:
        if e["duration"] < 0:
            continue  # still running
        p = projects.get(e.get("project_id")) or {}
        hours[clients.get(p.get("client_id"), "No client")][p.get("name", "No project")] += e["duration"] / 3600
    lines = []
    for client, by_project in sorted(hours.items()):
        lines.append(f"{client}: {sum(by_project.values()):.2f} h")
        lines += [f"  - {name}: {h:.2f} h" for name, h in sorted(by_project.items())]
    notify.email_me(f"Toggl hours, week of {monday}", "\n".join(lines) or "No time tracked this week.")
    return {"clients": len(hours)}

FAQ

Common questions

Does it cover Monday to Sunday?
It reports on the week according to the dates the flow requests from Toggl. By default that is the previous seven days, but you can ask for it to align with a Monday start or your workspace's week settings.
Will archived projects appear?
Archived projects only appear if they had time tracked in the week being reported. Otherwise they are not listed, so the email stays focused on active work. The week is read straight from Toggl at send time.
Can I send each client their own report?
You can ask for separate emails per client, each showing only that client's projects and hours. Check that the client is comfortable with the level of detail before sending, since entry descriptions may reveal internal notes.
What permissions does it need?
read. 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 “Get your week's hours by client and project” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.