The FXMacroData release calendar endpoint is now live. In one call you can retrieve upcoming release timestamps for a currency, filter down to one indicator when needed, request an IANA timezone such as America/Sao_Paulo, and schedule follow-up announcement fetches against the exact publication second.
What's New
The production release-calendar route is /api/v1/calendar/{currency}, with optional ?indicator=... and ?timezone=... query parameters. Instead of manually maintaining central-bank and statistics-office schedules, you can query a single production endpoint and receive release rows sorted by time.
Each row is built around scheduling and display fields:
- release - the canonical indicator slug used by the announcements endpoint, such as
inflation,policy_rate,unemployment, ornon_farm_payrolls - announcement_datetime - the UTC Unix timestamp used for scheduling and event studies
- announcement_datetime_utc - the same instant as an ISO timestamp in UTC
- announcement_datetime_local - the market-local ISO timestamp, such as New York time for USD releases
- announcement_datetime_requested_timezone - the ISO timestamp in the requested IANA timezone, when
timezoneis supplied
Some mixed-domain schedules also include additive routing metadata such as endpoint_family, endpoint_path, title, and schedule_status. Those fields help clients route the next request, but the timing workflow still starts with release plus the UTC announcement_datetime; timezone fields make the same instant easier to display in international workflows.
Why It Matters
Macro releases do not arrive on perfectly regular intervals. Central banks publish meeting calendars well in advance, while CPI, GDP, labor, and trade releases can move around month to month. If you are polling every five minutes, you either waste requests or accept avoidable latency.
Precision scheduling
Query the calendar once, sleep until just before the next timestamp, then hit the corresponding announcements endpoint exactly when fresh data should be available.
Cleaner workflow routing
Because the calendar returns the same release slug used by the announcements endpoint, you can move directly from timing to data retrieval without maintaining a separate mapping layer.
Practical Example: AUD Policy Rate Scheduling
Suppose you only care about the next RBA decision. Filter the AUD calendar directly to the production policy_rate slug:
curl "https://api.fxmacrodata.com/v1/calendar/aud?indicator=policy_rate&timezone=Australia/Sydney&api_key=YOUR_API_KEY"
Representative response:
{
"currency": "AUD",
"indicator": "policy_rate",
"timezone": "Australia/Sydney",
"requested_timezone": "Australia/Sydney",
"data": [
{
"announcement_datetime": 1773077400,
"announcement_datetime_utc": "2026-03-09T17:30:00+00:00",
"announcement_datetime_local": "2026-03-10T04:30:00+11:00",
"announcement_datetime_requested_timezone": "2026-03-10T04:30:00+11:00",
"release": "policy_rate"
}
]
}
That tells your scheduler exactly when to wake up and call the AUD policy rate announcement endpoint. The calendar tells you when the next event lands; the announcements endpoint tells you what printed once it lands.
Practical Example: USD Week-Ahead Scan
If you want the broader USD schedule, query the currency without an indicator filter and review the upcoming releases in chronological order. Add timezone=America/Sao_Paulo to display the same events in Brazil time.
curl "https://api.fxmacrodata.com/v1/calendar/usd?timezone=America/Sao_Paulo&api_key=YOUR_API_KEY"
Representative response:
{
"currency": "USD",
"indicator": null,
"timezone": "America/New_York",
"requested_timezone": "America/Sao_Paulo",
"data": [
{
"announcement_datetime": 1773077400,
"announcement_datetime_utc": "2026-03-09T17:30:00+00:00",
"announcement_datetime_local": "2026-03-09T13:30:00-04:00",
"announcement_datetime_requested_timezone": "2026-03-09T14:30:00-03:00",
"release": "inflation"
},
{
"announcement_datetime": 1773682200,
"announcement_datetime_utc": "2026-03-16T17:30:00+00:00",
"announcement_datetime_local": "2026-03-16T13:30:00-04:00",
"announcement_datetime_requested_timezone": "2026-03-16T14:30:00-03:00",
"release": "non_farm_payrolls"
}
]
}
This is enough to build pre-release risk windows, suppress a model during known macro events, or queue follow-up fetches to the USD inflation and USD non-farm payrolls endpoints when those timestamps arrive.
How It Fits with the Announcements Endpoint
The release calendar is intentionally narrow: it tells you which release is next and when it is scheduled. Once the event is live, use /api/v1/announcements/{currency}/{indicator} to fetch the released historical series and read the newest row in the returned data array.
That division keeps scheduling logic clean. You query the calendar for timing, then query the announcements endpoint for values and announcement history.
Get Started
USD calendar access is public. Other supported currencies require an API key. Start with a free USD test call, then move to authenticated currency workflows once your scheduler is wired up.
First steps
- Make a free test call:
curl "https://api.fxmacrodata.com/v1/calendar/usd?timezone=America/Sao_Paulo&api_key=YOUR_API_KEY" - Use any valid IANA timezone name; invalid timezone names return a validation error instead of a misleading timestamp
- Browse announcement slugs in the API documentation hub
- Build an event-driven fetcher with the scheduling guide