# Economic Calendar API – Fed, ECB, BLS & Eurostat Releases (`hypebridge/economic-calendar-api`) Actor

Economic Calendar API collects upcoming and recent macroeconomic events from official public institutions and returns one normalized calendar. It covers US, UK, euro-area, and EU releases from the Federal Reserve, BLS, BEA, Census Bureau, Treasury, FRED, ECB, Eurostat, ONS, and Bank of England.

- **URL**: https://apify.com/hypebridge/economic-calendar-api.md
- **Developed by:** [Hypebridge](https://apify.com/hypebridge) (community)
- **Categories:** AI, Automation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 calendar events

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Official Economic Calendar — Fed, ECB, BLS, Eurostat source data (no aggregators)

### What does Official Economic Calendar do?

**Official Economic Calendar** collects upcoming and recent macroeconomic events and official published values directly from primary institutional feeds (Federal Reserve, BLS, BEA, Census Bureau, Treasury, FRED, ECB, Eurostat, ONS, and Bank of England). Official published values only — no crowd consensus forecasts. Third-party aggregator crowd or consensus forecasts are not included.

Use it to track CPI, Nonfarm Payrolls (NFP), GDP, PCE, FOMC meetings, rate decisions, Treasury auctions, and other market-moving releases directly from primary sources without reconciling ten different calendars yourself. Duplicate listings are consolidated while official source links and source-specific context are retained.

### Why use an official economic calendar?

- **Market research**: Build a forward calendar for economic releases and central-bank decisions.
- **Trading workflows**: Pause or annotate automated strategies around scheduled announcements.
- **News planning**: Prepare coverage for CPI, employment, GDP, inflation, and policy events.
- **Data pipelines**: Export consistent JSON, CSV, Excel, or HTML records across regions.
- **Auditability**: Follow each event back to its official public source.

### What economic calendar data can it extract?

| Field | Type | Description |
| --- | --- | --- |
| `eventName` | String | Normalized release or event title |
| `eventType` | String | Data release, policy meeting, auction, rates, or central-bank event |
| `importance` | String | Curated expected market impact: high, medium, low, or unrated |
| `releaseDateTimeUtc` | String | UTC timestamp when an exact release time is known |
| `releaseDate` | String | Release date when an exact time is unavailable |
| `countryRegion` | String | US, United Kingdom, Euro area, or EU |
| `period` | String | Reference month, quarter, year, or security term |
| `metrics` | Array | Official metric definitions and exact period-matched observations |
| `valueStatus` | String | Whether values were not requested, unsupported, pending, unavailable, partial, complete, or failed |
| `sourceName` | String | Official publishing institution |
| `sourceUrl` | String | Official page or feed link |
| `status` | String | Scheduled, published, cancelled, preliminary, or source-specific status |

The full dataset also includes stable IDs, local release times, timezones, update timestamps, deduplication keys, and source-specific fields. Exact series codes and units live inside their corresponding metric instead of being ambiguously attached to the whole release. The **Calendar overview** is schedule-focused; use the separate **Release values** view when metric enrichment is relevant. Every run also writes a `RUN_SUMMARY` record with source health, warnings, and selection counts.

### How to collect Fed, ECB, BLS, and Eurostat releases

1. Create a free [Apify account](https://apify.com) if needed.
2. Open **Official Economic Calendar** and click **Try for free**.
3. Choose a date window and set **Max events** to cap the output.
4. Keep all sources enabled or narrow the run by source, region, or event type.
5. Leave **Get release values** enabled to surface official observations when available, or disable it for a schedule-only run.
6. Click **Start**, then download results from the **Dataset** tab.

### Input

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| `dateWindow` | String | `next_30_days` | Past 30 + next 90 days, past-only, future-only, or custom dates |
| `maxEvents` | Integer | `50` | Maximum events selected across the full window; higher-importance events are retained first, capped at 5,000 |
| `minImportance` | String | `medium` | Keep all events or require low, medium, or high expected market impact |
| `getReleaseValues` | Boolean | `true` | Enrich calendar events with exact official observations when available; BLS mappings cover CPI, Employment Situation (payrolls and unemployment), PPI Final Demand, and JOLTS |
| `includeObservationSeries` | Boolean | `false` | Also include supported standalone official series such as Treasury yields and Fiscal Data |
| `sources` | Array | All sources | Official institutions to include |
| `regions` | Array | All regions | US, UK, euro area, and EU filters |
| `eventTypes` | Array | All types | Event classifications to retain |
| `customStartDate` | String | — | Custom YYYY-MM-DD start date |
| `customEndDate` | String | — | Custom YYYY-MM-DD end date |
| `debugMode` | Boolean | `false` | Save bounded troubleshooting artifacts |

Date-window presets are ordered for the common workflow: `recent_and_next_90_days` (past 30 + next 90), `past_30_days`, `next_30_days`, `next_90_days`, `next_12_months`, then `custom`.

#### Upcoming 90-day calendar

```json
{
  "dateWindow": "next_90_days",
  "maxEvents": 500,
  "getReleaseValues": false
}
```

#### US releases with official metrics

```json
{
  "dateWindow": "recent_and_next_90_days",
  "maxEvents": 250,
  "minImportance": "medium",
  "getReleaseValues": true,
  "regions": ["us"],
  "eventTypes": ["data_release"],
  "sources": ["bls", "bea", "census", "treasury"]
}
```

#### Custom central-bank calendar

```json
{
  "dateWindow": "custom",
  "customStartDate": "2026-08-01",
  "customEndDate": "2026-12-31",
  "maxEvents": 200,
  "eventTypes": ["policy_meeting", "central_bank_event"],
  "sources": ["federal_reserve", "ecb", "bank_of_england"]
}
```

### Output

Results are saved to the default dataset and can be downloaded as JSON, CSV, Excel, or HTML.

```json
{
  "id": "bls:example-release-2026-08",
  "source": "bls",
  "sourceName": "U.S. Bureau of Labor Statistics",
  "sourceRecordId": "example-release-2026-08",
  "sourceUrl": "https://www.bls.gov/schedule/news_release/example.htm",
  "eventName": "Consumer Price Index",
  "eventType": "data_release",
  "importance": "high",
  "countryRegion": "US",
  "releaseDateTimeUtc": "2026-08-12T12:30:00.000Z",
  "releaseDateTimeLocal": "2026-08-12T08:30:00",
  "releaseDate": "2026-08-12",
  "releaseTime": "08:30",
  "releaseTimezone": "America/New_York",
  "sourceDateText": "August 12, 2026, 8:30 AM ET",
  "period": "July 2026",
  "status": "scheduled",
  "metrics": [
    {
      "metricId": "bls:CUSR0000SA0",
      "name": "Consumer Price Index for All Urban Consumers",
      "datasetCode": "CUSR0000SA0",
      "unit": "index 1982-84=100",
      "seasonalAdjustment": "seasonally adjusted",
      "precedingObservation": {
        "value": "320.8",
        "period": "June 2026"
      },
      "sourceUrl": "https://data.bls.gov/timeseries/CUSR0000SA0"
    }
  ],
  "valueStatus": "pending",
  "updateTimestamp": "2026-07-20T18:00:00.000Z",
  "dedupeKey": "consumer price index|2026-08-12|us",
  "scrapedAt": "2026-07-20T18:00:00.000Z",
  "sourceFields": {}
}
```

### How much does Economic Calendar API cost?

This Actor uses pay-per-event pricing. A normalized schedule-only or metadata-only record is charged as a `calendar-event`; a record containing at least one exact official observation or preceding observation is charged as an `enriched-release-event`. Exact rates are shown in the Actor pricing panel before a run.

Use `maxEvents`, a shorter date window, and narrow source or region filters to keep cost and runtime predictable. Value enrichment performs extra work, so set `getReleaseValues` to `false` when schedule data alone is enough.

### Tips

- Start with the next 30 or 90 days before requesting a long custom window.
- Filter by region to avoid collecting sources you do not need.
- Some institutions publish a date without an exact time; use `releaseDate` when `releaseDateTimeUtc` is unavailable.
- `updateTimestamp` is populated only when the official source provides a publication or update timestamp; `scrapedAt` separately records collection time.
- Scheduled releases may list expected metric definitions, but observations are omitted until they can be matched to that exact release and reference period.
- When `maxEvents` is reached, the Actor selects higher-importance events across the complete requested window before restoring chronological output order. `unrated` events remain included when `minImportance` is `all`.
- Read `RUN_SUMMARY` from the default key-value store to detect source degradation, importance filtering, result truncation, or a pay-per-event charge limit.
- Headline enrichment includes BLS payrolls and unemployment, BEA income/PCE spending and price indexes, Census retail sales, published FOMC target ranges, published ECB policy rates, and published Bank Rate decisions.
- Weekly US jobless-claims release dates are explicitly collected from FRED. Numeric claims observations are not currently attached to those events.
- Each adapter uses its proven official primary endpoint. If that endpoint is unavailable, the source reports a degraded warning rather than substituting another feed or institution.
- Debug mode is for troubleshooting and stores only bounded artifacts.

### FAQ

#### Are official observations available for every release?

No. Calendar coverage is broader than metric coverage. `valueStatus` makes every case explicit, and the Actor enriches only its maintained exact mapping catalog. It does not claim to extract every table cell inside every institutional report.

#### Why can the same release appear on several official calendars?

Some aggregating institutions republish releases from origin agencies. The Actor consolidates matching events and favors the origin agency while retaining useful identifiers from the aggregate listing.

#### Can I use custom dates?

Yes. Select `custom`, provide both dates in YYYY-MM-DD form, and keep the range within the supported limits. Caps remain enforced to prevent unbounded runs.

### Support

- Bugs and feature requests: use the **Issues** tab.
- Programmatic access: use the **API** tab.

> **Disclaimer**: This Actor collects publicly available institutional calendar data. Verify critical dates and values against the linked official source before making financial or operational decisions. This is not financial advice.

# Actor input Schema

## `dateWindow` (type: `string`):

Calendar window to collect across official macro sources.

## `maxEvents` (type: `integer`):

Maximum normalized events to return across all enabled sources.

## `getReleaseValues` (type: `boolean`):

Fetch exact period-matched official metrics from the maintained mapping catalog. BLS mappings currently cover CPI, Employment Situation (payrolls and unemployment), PPI Final Demand, and JOLTS. Calendar events are enriched in place; standalone series are controlled separately.

## `sources` (type: `array`):

Official sources to include.

## `minImportance` (type: `string`):

Keep all events or require a curated minimum expected market impact before the result cap is applied.

## `includeObservationSeries` (type: `boolean`):

Include supported standalone official observation records, such as Treasury yield curves and Fiscal Data, when release values are enabled.

## `regions` (type: `array`):

Region filter used to select sources and normalized records.

## `eventTypes` (type: `array`):

Optional event-type filter applied after normalization.

## `customStartDate` (type: `string`):

YYYY-MM-DD start date used only when Date window is Custom.

## `customEndDate` (type: `string`):

YYYY-MM-DD end date used only when Date window is Custom.

## `proxyConfiguration` (type: `object`):

Proxy settings for supported sources. A residential Apify Proxy connection is used internally where required.

## `debugMode` (type: `boolean`):

Store bounded source plans, failed-response excerpts, raw samples, and dedupe decisions for troubleshooting.

## Actor input object example

```json
{
  "dateWindow": "next_30_days",
  "maxEvents": 50,
  "getReleaseValues": true,
  "sources": [
    "fred",
    "bls",
    "bea",
    "census",
    "treasury",
    "federal_reserve",
    "ecb",
    "eurostat",
    "ons",
    "bank_of_england"
  ],
  "minImportance": "medium",
  "includeObservationSeries": false,
  "regions": [
    "us",
    "uk",
    "euro_area",
    "eu"
  ],
  "eventTypes": [
    "data_release",
    "policy_meeting",
    "auction",
    "rates",
    "central_bank_event"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "debugMode": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

Complete dataset containing every normalized output field.

## `overview` (type: `string`):

Schedule-focused table that avoids value-only columns for upcoming releases.

## `values` (type: `string`):

Metric-focused table for runs with exact period-matched official enrichment.

## `summary` (type: `string`):

Machine-readable source health, warnings, selection counts, and truncation details.

## `files` (type: `string`):

Bounded troubleshooting artifacts created only when debug mode is enabled.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "dateWindow": "next_30_days",
    "maxEvents": 50,
    "minImportance": "medium"
};

// Run the Actor and wait for it to finish
const run = await client.actor("hypebridge/economic-calendar-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "dateWindow": "next_30_days",
    "maxEvents": 50,
    "minImportance": "medium",
}

# Run the Actor and wait for it to finish
run = client.actor("hypebridge/economic-calendar-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "dateWindow": "next_30_days",
  "maxEvents": 50,
  "minImportance": "medium"
}' |
apify call hypebridge/economic-calendar-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hypebridge/economic-calendar-api"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/2UQ5B1IEeeqma9NhE/builds/aaeLAedVQ0WdeoGYg/openapi.json
