# Calendar

> Daily P&L over a date range, grouped in your user timezone.
> Source: https://help.tradavity.com/api-docs/calendar
> Category: Reports & Calendar

---

## GET /calendar

**Scope:** `read:trades`

Daily P&L over a date range, grouped in your user timezone. Returns `days[]` (one row per traded day with `net_pnl`, `trade_count`, `winning_trades`, `losing_trades`) plus `summary` with `traded_days`, `winning_days`, `losing_days`, `flat_days`, `total_trades`, `total_net_pnl`, the user’s `timezone` string, and the active `breakeven_offset: {low, high}`.

**Decision-grouped counts.** `trade_count`, `winning_trades`, and `losing_trades` are decision-based: one trading decision copied to N accounts contributes one row, with P&L summed across copies. `net_pnl` is still real money (sum across all rows for that day). `winning_trades` / `losing_trades` and the per-day `winning_days` / `losing_days` / `flat_days` classification honor your account’s breakeven offset window — days landing inside the window are flat, not a tiny win or loss. See the [Stats reference](https://help.tradavity.com/api-docs/stats) for how the offset is picked.

| Param | Type | Description |
| --- | --- | --- |
| `from` | date | Required unless `range` is supplied. |
| `to` | date | Required unless `range` is supplied. |
| `range` | enum | Shortcut: `today`, `yesterday`, `7d`, `30d`, `90d`, `mtd`, `ytd`, `all`. Overrides `from`/`to`. Invalid values return `400 validation_error`. |
| `account` / `account_id` | int or string | Either alias works. |
| `include_archived_accounts` | bool | Default false. |
