# US Economic Calendar – CPI, Jobs, GDP, FOMC (Official Sources) (`knobby_woodworker_aig/us-economic-release-calendar`) Actor

US economic release calendar straight from BLS, BEA, Census, the Fed (FOMC), EIA and DOL – not ForexFactory or Investing.com, so no blocks or captchas. Impact tags, reference periods, ET/UTC/your time zone, reschedule alerts, and a ready .ics calendar file.

- **URL**: https://apify.com/knobby_woodworker_aig/us-economic-release-calendar.md
- **Developed by:** [Reval](https://apify.com/knobby_woodworker_aig) (community)
- **Categories:** News, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 calendar releases

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## US Economic Calendar – CPI, Jobs, GDP, FOMC (Official Sources)

A US macro release calendar built **directly from the agencies that publish the data**: BLS, BEA, Census Bureau, Federal Reserve (FOMC), EIA and DOL. Nothing is scraped from ForexFactory, Investing.com or other aggregators, so there are no Cloudflare blocks, no captchas, no proxies and no surprise breakages.

### Problems with existing calendar scrapers, and how this Actor fixes them

| Common complaint | This Actor |
|---|---|
| ForexFactory / Investing.com scrapers break or get blocked by Cloudflare | Uses only official .gov pages and the BLS iCalendar feed. No proxy needed |
| Times in the wrong zone or missing DST | Every row has ET with the correct DST offset, UTC, and **your own time zone** (`timeZone` input) |
| "Which month is this CPI for?" | `referencePeriod` from BLS, BEA and Census (e.g. *October 2026*, *3rd Quarter 2026*) |
| Hard to filter for what moves markets | `impact` tag (high/medium/low) and `category` (inflation, labor, growth, housing, energy, monetary_policy…) |
| No warning when releases move (e.g. after shutdowns or holidays) | **Reschedule detection**: `changeStatus` = new / rescheduled / unchanged, plus `previousDateTimeET`. `onlyChanges` mode for alerts |
| Want it in Google Calendar / Outlook | A ready **`calendar.ics`** file is saved in the key-value store every run |
| Paying a lot per event | Low pay-per-result price; a 30-day calendar is about 60 rows |

### What's covered

- **BLS**: Employment Situation (payrolls), CPI, PPI, JOLTS, ECI, Productivity, Import/Export Prices, Real Earnings, state/metro employment and more, from the BLS iCal feed and per-release schedules.
- **BEA**: GDP (advance/second/third), Personal Income & Outlays (PCE), trade, current account, regional accounts. Includes next year once BEA publishes it.
- **Census**: Advance retail sales, housing starts/permits, new home sales, durable goods, construction spending, factory orders, inventories, QFR and more. Covers this year and next.
- **Federal Reserve**: FOMC decision dates (2:00 PM ET), with dot-plot/SEP meetings flagged, plus FOMC minutes. Future minutes dates are estimated (3 weeks after the meeting) and flagged `estimated: true`.
- **EIA**: Weekly Petroleum Status Report (Wednesdays 10:30 ET) and Natural Gas Storage (Thursdays 10:30 ET), with EIA's official holiday-schedule changes applied.
- **DOL**: weekly jobless claims (Thursdays 8:30 ET, moved for federal holidays, flagged `estimated`).

### Output example

```json
{"date":"2026-11-10","timeET":"08:30","dateTimeET":"2026-11-10T08:30:00-05:00","dateTimeUTC":"2026-11-10T13:30:00.000Z","localDateTime":"2026-11-10T13:30","dayOfWeek":"Tuesday","daysUntil":10,"source":"BLS","release":"Consumer Price Index","indicator":"CPI","category":"inflation","impact":"high","referencePeriod":"October 2026","changeStatus":"unchanged"}
```

### Typical uses

- Trading bots and dashboards: a daily scheduled run with `impact: ["high"]`.
- Newsletters and research teams: a weekly "what's coming" list.
- Calendar subscription: download `calendar.ics`.
- Alerts: `onlyChanges: true` on a daily schedule tells you when a release is added or rescheduled.

### Pricing

$1.00 per 1,000 calendar rows (pay per result), with impact tags, time-zone conversion, reschedule detection and the .ics file all included. A month of US releases is usually under 100 rows, so a run costs pennies.

### Sources

bls.gov/schedule · bea.gov/news/schedule · census.gov/economic-indicators · federalreserve.gov/monetarypolicy/fomccalendars.htm · eia.gov · dol.gov. These are public US government data. The Actor sends a polite, identified User-Agent and makes about 25 requests per run.

*Release dates are set by the agencies and can change. Check `sourceUrl` before trading on them.*

# Actor input Schema

## `daysAhead` (type: `integer`):

Include releases from today up to N days ahead.

## `daysBack` (type: `integer`):

Also include releases from the last N days.

## `fromDate` (type: `string`):

YYYY-MM-DD (overrides Days back).

## `toDate` (type: `string`):

YYYY-MM-DD (overrides Days ahead).

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

Leave empty for all.

## `impact` (type: `array`):

e.g. only high = CPI, payrolls, GDP, PCE, FOMC, retail sales, PPI, JOLTS.

## `categories` (type: `array`):

Leave empty for all.

## `keywords` (type: `array`):

Release name contains any of these, e.g. CPI, Housing, GDP.

## `includeWeekly` (type: `boolean`):

EIA petroleum & natural gas storage and DOL jobless claims.

## `timeZone` (type: `string`):

IANA name, e.g. Europe/London, Asia/Singapore, America/Chicago. Fills localDateTime.

## `onlyChanges` (type: `boolean`):

Compare with the previous run and output only releases that were added or moved (e.g. after a shutdown delay).

## `stateStoreName` (type: `string`):

Named key-value store used for reschedule detection.

## `writeIcs` (type: `boolean`):

Saves calendar.ics in the run's key-value store for Google Calendar / Outlook.

## `maxItems` (type: `integer`):

Stop after this many rows.

## Actor input object example

```json
{
  "daysAhead": 30,
  "daysBack": 0,
  "includeWeekly": true,
  "timeZone": "UTC",
  "onlyChanges": false,
  "stateStoreName": "us-econ-calendar-state",
  "writeIcs": true,
  "maxItems": 1000
}
```

# Actor output Schema

## `calendar` (type: `string`):

No description

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

No description

## `all` (type: `string`):

No description

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

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("knobby_woodworker_aig/us-economic-release-calendar").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("knobby_woodworker_aig/us-economic-release-calendar").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 '{}' |
apify call knobby_woodworker_aig/us-economic-release-calendar --silent --output-dataset

```

## MCP server setup

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

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/PYcZ5ZOvkpfCUqv9V/builds/rR7enOApfdpkVHa2F/openapi.json
