> ## Documentation Index
> Fetch the complete documentation index at: https://docs.timetracker.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Schedule a report

> Have a saved report emailed to a list of people every day, week or month. Set up, edit and retire report schedules, and see what recipients receive.

A schedule emails a saved report to a list of people on a repeating cadence. Set it once and the report arrives without anyone opening TimeTracker.

## What is a report schedule?

A schedule is a small record that ties four things together:

| Part           | What it is                                                |
| -------------- | --------------------------------------------------------- |
| **Name**       | What the schedule is called, and what the email is titled |
| **Report**     | Which saved report it runs                                |
| **Cadence**    | Daily, Weekly or Monthly                                  |
| **Recipients** | The email addresses it goes to                            |

Every run uses the report's own saved settings – its source, period, columns, filters, grouping and sorting. Change the report and every future email changes with it.

<Note>
  A schedule points at a report, it does not copy it. Fix a filter on the report and the next email is already fixed.
</Note>

## When to use one

| Situation                                               | Schedule                     |
| ------------------------------------------------------- | ---------------------------- |
| The team should start Monday knowing where hours went   | **Hours by project**, weekly |
| Finance chases receivables at month end                 | **Unpaid invoices**, monthly |
| You want unbilled work in front of you before invoicing | **Unbilled work**, weekly    |
| A daily pulse on tracked time                           | **Time detail**, daily       |

## How to schedule a report

<Steps>
  <Step title="Save the report first">
    A schedule can only target a saved report. If nothing is saved, the picker says: *"Save a report first to schedule it."*
  </Step>

  <Step title="Open Scheduled reports">
    Go to **Reports → Scheduled reports**, or search for "Report schedules" in the command palette.
  </Step>

  <Step title="Click Schedule report">
    The create dialog opens: *"Have this report emailed to your group on a recurring cadence."*
  </Step>

  <Step title="Name it">
    Type a name, for example `Weekly profitability`. Names are 1 to 80 characters.
  </Step>

  <Step title="Pick the report">
    Choose one of your saved reports from the **Report** dropdown.
  </Step>

  <Step title="Pick a cadence">
    **Daily**, **Weekly** or **Monthly**.
  </Step>

  <Step title="Add recipients">
    Type email addresses separated by commas, for example `name@company.com, other@company.com`. At least one is required.
  </Step>

  <Step title="Save">
    Click **Save schedule**. A toast confirms **"Schedule created."**
  </Step>
</Steps>

**Save schedule** stays disabled until the schedule has a name and a report.

## The schedules table

| Column         | Shows                                                                   |
| -------------- | ----------------------------------------------------------------------- |
| **Name**       | The schedule name, plus a lifecycle chip when it is archived or trashed |
| **Report**     | Which saved report it runs                                              |
| **Cadence**    | Daily, Weekly or Monthly                                                |
| **Recipients** | The single address, or **N recipients** when there is more than one     |
| **Actions**    | An edit pencil and the three-dot lifecycle menu                         |

Above the table sit a lifecycle filter and the **Schedule report** button.

With nothing set up: **"No schedules yet."** and **"Schedule a report to have it emailed to your group on a cadence."**

## Editing a schedule

Click the pencil on a row. The same dialog opens with the current values filled in, titled **Edit schedule**. Change what you need and click **Save schedule**.

The replacement is written before the old one is removed, so a failure never loses the schedule you had.

<Note>
  An edit does not leave a copy behind in the Trash. You edited a schedule; you did not delete one.
</Note>

## Retiring a schedule

Use the three-dot menu on a row to archive, trash or restore a schedule. An archived or trashed schedule stops sending.

Switch the lifecycle filter above the table to see retired schedules and bring one back.

## When schedules run

Schedules are checked once a day. Each one fires when its next run time arrives, then rolls forward by exactly one cadence step:

| Cadence     | Rolls forward by                         |
| ----------- | ---------------------------------------- |
| **Daily**   | One day                                  |
| **Weekly**  | Seven days                               |
| **Monthly** | One calendar month, with the day clamped |

A monthly schedule created on 31 January moves to 28 or 29 February, not into March.

A newly created schedule starts one cadence step from the moment it was created. A weekly schedule created on Tuesday first fires the following Tuesday.

## What the recipients get

Each recipient gets their own email, titled after the schedule – for example *"Weekly profitability – scheduled report"* – telling them the report is ready and how many rows it contains. The report itself is built as a CSV file.

The figures come from the same engine the on-screen report uses, so a scheduled number and the number on your screen match to the cent.

<Warning>
  The report is built under **your** permissions, not each recipient's. If you can see cost and revenue, those columns are in the file everyone receives. Think about who is on the list before you add a report with money on it.
</Warning>

Recipients do not need a TimeTracker login. Anyone with an email address can be on the list.

## If your access changes

A schedule stops sending if the person who created it can no longer run the report. That covers:

* Losing report access after a role change
* Being removed from the workspace
* The report being deleted

Nothing is sent, nothing errors at the recipients, and the schedule rolls forward. One failing schedule never blocks anyone else's.

## Example

Northwind Studio wants the delivery picture in everyone's inbox on Monday, and receivables on the first of the month.

| Name                  | Report           | Cadence | Recipients          |
| --------------------- | ---------------- | ------- | ------------------- |
| `Weekly delivery`     | Hours by project | Weekly  | maya@, tom@, priya@ |
| `Monthly receivables` | Unpaid invoices  | Monthly | daniel@, maya@      |
| `Unbilled check`      | Unbilled work    | Weekly  | daniel@             |

Tom Whitfield creates all three. Because he holds cost and billing access, the **Unbilled check** file carries the Revenue column – which is exactly what Daniel Okafor needs before raising invoices.

## Permissions

| Action                         | Capability                                |
| ------------------------------ | ----------------------------------------- |
| Create a schedule              | `report.schedule`                         |
| Edit or retire a schedule      | `report.schedule`, and it must be yours   |
| See the Scheduled reports page | `report.schedule`                         |
| A schedule to actually send    | The creator must still hold `report.view` |

Out of the box, only Owner and Admin hold `report.schedule`. Project Manager, Finance, Member, Contractor and Client do not, so the page is not in their navigation.

Scheduling is a Pro feature. See [/concepts/plans-and-features](/concepts/plans-and-features).

Schedules are personal. You see and manage your own, not everybody's.

## What happens next

* The first email arrives one cadence step after you create the schedule.
* The report is rebuilt each time, so the numbers are always current.
* Edit the underlying report and every future email follows.
* Archive the schedule to stop it.

## Common questions

<AccordionGroup>
  <Accordion title="Can I choose the exact time of day?">
    No. Schedules are checked once a day and fire when they become due. You choose the cadence, not the hour.
  </Accordion>

  <Accordion title="Can I schedule a report I did not create?">
    Yes, as long as you can see it. Any report in your library – shared or your own – can be a schedule target.
  </Accordion>

  <Accordion title="What period does the emailed report cover?">
    The report's own saved period, resolved on the day it runs. A **Last 7 days** report always sends the previous seven days.
  </Accordion>

  <Accordion title="Do recipients need a TimeTracker account?">
    No. Any email address works. They receive the report content, not a login.
  </Accordion>

  <Accordion title="Can two people manage the same schedule?">
    No. A schedule belongs to whoever created it. Create a second one if someone else needs to own it.
  </Accordion>

  <Accordion title="What happens if the report is archived?">
    An archived report can still be found, so the schedule keeps running. A deleted report cannot, and the schedule sends nothing.
  </Accordion>

  <Accordion title="Can I schedule a pivot report?">
    A pivot has no file output, so schedule the same data as a Plain or Subgroups report instead.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                                    | Why                                            | Fix                                               |
| ---------------------------------------------------------- | ---------------------------------------------- | ------------------------------------------------- |
| The **Report** dropdown is empty                           | You have no saved reports                      | Build and save one first                          |
| *"Pick which report this schedule should send."*           | No report chosen                               | Choose one from the dropdown                      |
| *"Add at least one person to send this to."*               | No recipients                                  | Add at least one email address                    |
| *"That schedule name won't work. Use 1 to 80 characters."* | The name is blank or too long                  | Shorten it                                        |
| Emails stopped arriving                                    | Your access changed, or the report was deleted | Check your role, and that the report still exists |
| The page is missing from navigation                        | You lack `report.schedule`                     | Ask an admin                                      |
| **Schedule report** does nothing                           | Scheduling is a Pro feature                    | See [/billing/free-vs-pro](/billing/free-vs-pro)  |

## Related guides

<CardGroup cols={2}>
  <Card title="Saved reports" icon="bookmark" href="/reports/saved-reports">
    Save the report a schedule will target.
  </Card>

  <Card title="Export a report" icon="download" href="/reports/export-a-report">
    Get the same file on demand instead.
  </Card>

  <Card title="Date ranges and periods" icon="calendar" href="/reports/date-ranges-and-periods">
    What window a recurring email covers.
  </Card>

  <Card title="Report permissions" icon="lock" href="/reports/report-permissions">
    Whose permissions build the emailed file.
  </Card>

  <Card title="Email notifications" icon="envelope" href="/notifications/email-notifications">
    Everything else TimeTracker emails you.
  </Card>
</CardGroup>
