A Free Economic Calendar API
Economic calendar data is weirdly hard to get as an API. The big calendars are scrape-hostile, the commercial feeds start at three digits a month, and half the "free" options return stale CSVs. biquote's calendar endpoint serves 54 countries as clean JSON — actual, forecast, previous, revisions — free and keyless.
This week's high-impact events
curl "https://biquote.io/api/calendar?importance=high&countries=US,EU,GB,TR"
[{
"eventId": "mql5:840220001",
"time": "2026-08-17T20:00:00Z",
"countryCode": "US", "currency": "USD",
"name": "TIC Net Long-Term Transactions",
"importance": "medium", "type": "indicator",
"unit": "currency", "multiplier": "billions",
"actual": 172.7, "forecast": 90.5,
"previous": 232.7, "revisedPrevious": 231.2,
"timeMode": "exact"
}, ...]
The endpoints
| Endpoint | Returns |
|---|---|
GET /api/calendar | events in a date range (default: yesterday → +7 days) |
GET /api/calendar/upcoming | the next releases from now, soonest first |
GET /api/calendar/countries | the exact country list with currencies |
GET /api/calendar/{eventId}/history | past prints of one series (e.g. every NFP) |
Filters: from/to, countries (comma-separated ISO codes), importance (low | medium | high), type (event | indicator | holiday).
Reading the values correctly
actual,forecast,previousare null when not published — null means "no value", never zero.unit+multipliersay how to render: payrolls arrive as152000with multiplier"thousands"— display 152,000K, don't multiply it out.timeModeother than"exact"means the clock component is a placeholder — show the date only.revisedPreviousis set when the statistics office restated the prior figure — compareactualagainstforecast, notprevious.
Coverage: two feeds with non-overlapping country sets, normalised to one shape — the 22 majors plus Turkey, central/eastern Europe, Asian emerging markets and the Gulf. Rolling window ≈ 90 days back and forward.
Don't want to build UI?
The same data ships as an embeddable widget — one tag, filterable by country and importance, light/dark themes:
<script src="https://widgets.biquote.io/v1/loader.js" async></script>
<div data-biquote-widget="calendar" data-countries="US,EU,TR" data-importance="medium"></div>