# Time Entries

Use time entry commands to inspect tracked time and control the running timer.

## Commands

List time entries for a date range:

```bash
toggl --json time-entries list --date-from 2026-04-01 --date-to 2026-04-07
```

Start tracking a task. When `--type` is omitted, the CLI defaults to `activity`:

```bash
toggl --json time-entries start --task-id <task-id>
```

Start a break:

```bash
toggl --json time-entries start --type break
```

Stop the running timer:

```bash
toggl --json time-entries stop
```

## Update vs partial-update

- **`time-entries partial-update`** — PATCH-style: change optional fields (for example description, billable, or type) without sending a full timing payload.
- **`time-entries update`** — full timing replace: the API requires **`start`**, **`duration`**, and **`type`** together (`activity` or `break`). Use **`update`** when moving or resizing an entry (new start and duration); do not use **`partial-update`** for that.

## Agent Workflow

When the user asks to start tracking work for a named task, resolve the task ID first with `tasks list` or `tasks get`.

Use `YYYY-MM-DD` ranges for full days. Use RFC 3339 datetimes when the user gives exact times or time zones.

Before starting a timer on an ambiguous task, ask for confirmation. Stopping the timer does not require a task ID.
