# Get the economic calendar

Source: https://langbot.ai/docs/api/live-events/get-economic-calendar

`GET /v1/calendar/economic`

Scheduled market-moving US releases with their exact times (BLS, BEA, FOMC, Treasury auctions), and the release each was linked to once it was out.

**Auth.** None. Without a token the call is served as Free (the Free delay and request budget, shared per IP); send `Authorization: Bearer lb_…` for your plan's.

**Limits.** Counts against your plan's API requests (60, 600 or 3,000 a minute on Free, Builder and Standard). Served at your plan's delay (+60 s Free, +10 s Builder, +2 s Standard).

## Parameters

### Query parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `since` | integer | no | Start of the window, ms epoch (default a day ago). |
| `until` | integer | no | End of the window, ms epoch (default `since` plus `days`). |
| `days` | integer | no | Window length in days when `until` is not given. 1 to 400. Default `14`. |
| `kind` | string | no | Comma-separated kinds: `cpi`, `jobs`, `ppi`, `jolts`, `eci`, `gdp`, `pce`, `trade`, `fomc_statement`, `fomc_press_conference`, `treasury_auction`, and the others listed below. |
| `agency` | string | no | Comma-separated: `bls`, `bea`, `fed`, `treasury`. |
| `importance` | string | no | Comma-separated: `high`, `medium`, `low`. |
| `status` | string | no | Comma-separated: `scheduled`, `released`, `removed` (default `scheduled,released`). |
| `limit` | integer | no | Page size. 1 to 1000. Default `200`. |

## Request

**curl**

```bash
curl "https://api.langbot.ai/v1/calendar/economic?kind=cpi,fomc_statement&days=40"
```

**Python**

```python
from langbot import LangbotClient

async with LangbotClient() as lb:
    for e in await lb.economic_calendar(kinds=["cpi", "fomc_statement"], days=40):
        print(e.scheduled_at, e.title, e.release.latency_ms if e.release else None)
```

**TypeScript**

```ts
import { LangbotClient } from "@langbotai/sdk";

const lb = new LangbotClient();
const rows = await lb.economicCalendar({ kinds: ["cpi", "fomc_statement"], days: 40 });
for (const e of rows) console.log(e.scheduled_at, e.title, e.release?.latency_ms);
```

## Response

`200 OK`

```json
{
  "ts": 1794317460000,
  "since": 1794231060000,
  "until": 1797687060000,
  "delay_ms": 0,
  "count": 2,
  "entries": [
    {
      "id": "ecal_bls_cpi_20261110",
      "kind": "cpi",
      "agency": "bls",
      "title": "Consumer Price Index",
      "scheduled_at": 1794317400000,
      "time_known": true,
      "importance": "high",
      "status": "released",
      "source_ids": ["src_wire_bls"],
      "meta": {"origin": "https://www.bls.gov/schedule/news_release/bls.ics", "release": "cpi"},
      "release": {
        "event_id": "evt_0GAV4KCC091F01FK2DE4AP9Y46",
        "source_id": "src_wire_bls",
        "title": "CPI for all items increases 0.3% in October",
        "url": "https://www.bls.gov/news.release/archives/cpi_11102026.htm",
        "released_at": 1794317402100,
        "first_seen_at": 1794317402100,
        "latency_ms": 2100,
        "publish_latency_ms": 2100
      }
    },
    {
      "id": "ecal_fomc_statement_20261209",
      "kind": "fomc_statement",
      "agency": "fed",
      "title": "FOMC statement (December 8-9, 2026, with projections)",
      "scheduled_at": 1796842800000,
      "time_known": true,
      "importance": "high",
      "status": "scheduled",
      "source_ids": ["src_wire_fed_press"],
      "meta": {"origin": "https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm", "sep": true, "time_basis": "standard"},
      "release": null
    }
  ]
}
```

Times are ms epoch; the agencies schedule in US Eastern time. Schedules come from the agencies themselves: the BLS release calendar, BEA's release schedule, the Federal Reserve's FOMC calendar (statements at 2:00 pm and press conferences at 2:30 pm Eastern, the Fed's standing practice, so `meta.time_basis` is `standard`) and TreasuryDirect's announced auctions. Other kinds: `real_earnings`, `import_prices`, `productivity`, `ecec`, `state_jobs`, `bls_other`, `bea_other`.

Once a release is out, `release` names the official item that carried it ([List official releases](https://langbot.ai/docs/api/live-events/list-official-releases)): `latency_ms` is when Langbot first saw it minus the scheduled time, `publish_latency_ms` the item's own publish time minus the scheduled time. The link follows your plan's delay: until the item is visible to you the row reads `scheduled`. A press conference has no text item and stays `scheduled`. `removed` rows are releases the agency took off its schedule.

## Errors

| Status | `code` | When |
|---|---|---|
| 422 | `validation_error` | An unknown kind, agency, importance or status, or a window that ends before it starts or spans more than 400 days. |
| 401 | `token_invalid` | A token was sent and not recognised. Send a valid one, or none to call anonymously. |
| 429 | `rate_limited` | Over your request budget; wait `Retry-After` seconds. |

Every error body is `{"detail": …, "code": "…"}`; branch on `code`. All codes: [Errors](https://langbot.ai/docs/api#errors).
