Trader Calendar (forexfactory.com) avatar

Trader Calendar (forexfactory.com)

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Trader Calendar (forexfactory.com)

Trader Calendar (forexfactory.com)

Scrape the Forex Factory economic calendar: NFP, CPI, GDP, PMI, rate decisions and more. Get actual, forecast and previous values, impact level and a better/worse-than-forecast signal. Filter by date range, currency, impact and keyword in any time zone. Export JSON, CSV, Excel or use the API.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Pinto Studio

Pinto Studio

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

11 days ago

Last modified

Categories

Share

Forex Factory Economic Calendar Scraper

πŸ’¬ Need help? Contact us on Telegram: @pintoflow This is the fastest way to reach us for questions, bug reports, feature requests or custom versions of this Actor. We usually reply much faster there than through any other channel.

Get the ForexFactory economic calendar as clean, structured data: interest rate decisions, CPI (inflation), Non-Farm Payrolls, GDP, PMI, central bank speeches, bank holidays and more. Every event comes with actual, forecast and previous values and an impact level.

Filter by currency, impact, date range and keyword, and get every time in your own time zone. Download the results as JSON, CSV, Excel, XML or HTML, or pull them from the Apify API.


✨ What can it do?

  • πŸ“… Any period: today, tomorrow, this/next/last week or month, a specific day, week or month, or a custom range of up to 2 years
  • πŸ’± Filter by currency: USD, EUR, GBP, JPY, AUD, NZD, CAD, CHF, CNY
  • πŸ”΄ Filter by impact: high, medium, low, holiday
  • πŸ”Ž Search by keyword: e.g. only "CPI" or "Non-Farm" releases
  • 🌍 Any time zone: New York, London, Tokyo, Lisbon… Daylight saving time is handled automatically
  • πŸ“ˆ Actual vs forecast: each result is marked as better or worse for the currency
  • ⚑ Fast and light: no browser needed, so runs finish in seconds and use very few compute units

πŸš€ How to use it (3 steps)

  1. Click Try for free (or Start) on this page.
  2. In the Input tab, pick a Period and, if you like, some Currencies and Impact levels.
  3. Click Start. When the run finishes, open the Output tab to see your events in a table, or click Export to download them.

That's it. With the default settings you get all events for this week with times in UTC.


βš™οΈ Input options

FieldWhat it doesExample
PeriodWhich days to scrape (see the list below)This week
DateUsed with Specific day or Specific week2026-10-07
MonthUsed with Specific month (format YYYY-MM)2026-11
Start date / End dateUsed with Custom range, up to 731 days2026-01-01 β†’ 2026-06-30
CurrenciesKeep only these currencies (empty = all)USD, EUR
ImpactKeep only these impact levels (empty = all)High
Search in titleKeep only events whose name contains this textCPI
Time zoneTime zone for the date and time fieldsAmerica/New_York
Include raw dataAdds every original field from ForexFactoryoff
Proxy configurationOptional. Usually not neededoff
Max retriesHow many times to retry a failed request2

Period options:

OptionMeaning
Today / Tomorrow / YesterdayOne day
This week / Next week / Last weekA full week (Sunday β†’ Saturday)
This month / Next month / Last monthA full month
Specific dayThe day you set in Date
Specific weekThe week containing the Date you set
Specific monthThe month you set in Month
Custom rangeFrom Start date to End date

Impact levels:

ValueMeaning
πŸ”΄ highCan move the market strongly (rate decisions, NFP, CPI…)
🟠 mediumModerate effect on the market
🟑 lowUsually a small effect
βšͺ holidayBank holidays and non-economic events

Example input (JSON)

High-impact USD and EUR events for next week, in London time:

{
"period": "next_week",
"currencies": ["USD", "EUR"],
"impacts": ["high"],
"timezone": "Europe/London"
}

Every CPI release in the first half of 2026:

{
"period": "custom_range",
"startDate": "2026-01-01",
"endDate": "2026-06-30",
"search": "CPI"
}

πŸ“¦ Output

Each event is one row in the dataset:

{
"id": 147267,
"title": "ISM Services PMI",
"currency": "USD",
"country": "US",
"impact": "high",
"date": "2026-10-05",
"time": "10:00",
"timezone": "America/New_York",
"timestamp": "2026-10-05T14:00:00.000Z",
"actual": "58.3",
"forecast": "57.1",
"previous": "56.0",
"revision": null,
"actualVsForecast": "better",
"notice": null,
"url": "https://www.forexfactory.com/calendar?day=oct5.2026#detail=147267",
"scrapedAt": "2026-10-07T15:48:48.997Z"
}
FieldMeaning
idUnique event ID
titleEvent name, e.g. CPI m/m
currency / countryCurrency affected and country code
impacthigh, medium, low or holiday
dateDay of the event, in your time zone (YYYY-MM-DD)
timeTime in 24-hour format in your time zone, or a label when there's no exact time: All Day, Tentative, …
timezoneThe time zone used for date and time
timestampExact moment in UTC (ISO 8601). null when there's no exact time
actualThe released value. null until it's published
forecastWhat economists expected
previousThe value from the last release
revisionThe corrected previous value, if it was revised
actualVsForecastbetter or worse for the currency, or null
noticeSpecial note about the event, if any
urlLink to the event on ForexFactory
scrapedAtWhen the data was collected (UTC)

πŸ’‘ How to read actualVsForecast: better means the result came out good for that currency, which often pushes it up. worse means the opposite. It doesn't always mean a higher number: for unemployment, for example, a lower number is "better".

A run summary (period, filters, total vs saved events, source pages) is also saved in the key-value store under the key OUTPUT.


πŸ”Œ Use it from your code

Run the Actor and get the results in one call with the Apify API. Replace YOUR_APIFY_TOKEN with your token (Apify Console β†’ Settings β†’ API & Integrations) and ACTOR_ID with this Actor's ID (shown in the API tab on this page).

cURL

curl -X POST "https://api.apify.com/v2/acts/ACTOR_ID/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"period":"today","impacts":["high"],"timezone":"America/New_York"}'

JavaScript (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('ACTOR_ID').call({
period: 'this_week',
currencies: ['USD'],
impacts: ['high'],
timezone: 'America/New_York',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((e) => console.log(`${e.date} ${e.time} ${e.currency} ${e.title}`));

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("ACTOR_ID").call(run_input={
"period": "today",
"impacts": ["high", "medium"],
"timezone": "Europe/London",
})
for event in client.dataset(run["defaultDatasetId"]).iterate_items():
print(event["time"], event["currency"], event["impact"], event["title"], event["actual"])

⏰ Schedule it

Want fresh data automatically? In Apify Console go to Schedules β†’ Create new, choose this Actor and pick when to run it. For example:

  • Every Sunday evening: period = next_week, to plan your trading week
  • Every morning: period = today, impact = high, for a daily briefing
  • Every 15 minutes during the day: period = today, to collect actual values as they're released

Connect it to Google Sheets, Slack, Discord, Telegram, Zapier, Make or webhooks using Apify Integrations.


❓ FAQ

Do I need a proxy? Usually not. The Actor works without one. If you ever see blocked requests in the log, enable Proxy configuration.

How far back can I go? Any date from 2007 onwards. One run can cover up to about 2 years with Custom range.

Why is actual empty? The event hasn't happened yet, or it has no number (speeches, holidays, meetings).

Why is time "All Day" or "Tentative" and timestamp empty? Some events have no exact release time. In that case date is still the scheduled day.

Which time zone are times in? UTC by default. Set Time zone to any IANA name, such as America/New_York, Europe/Berlin, Asia/Singapore or Australia/Sydney.

The run failed with "Invalid input". What did I do wrong? The message tells you exactly what's wrong. Most often it's a missing Date for Specific day/week, or a missing Start/End date for Custom range.

Can I use it for a trading bot or Expert Advisor (EA)? Yes. A common pattern is a news filter: run it with period = today and impact = high, then pause trading for a few minutes around each event's timestamp.


πŸ“– Glossary: economic calendar terms

TermWhat it isWhy traders care
Interest Rate DecisionThe central bank sets its main rate (Fed, ECB, BoE, BoJ, RBA, BoC, SNB, RBNZ)Usually the biggest market mover for a currency
CPI (Consumer Price Index)Measures inflation, i.e. how fast prices are risingHigh inflation can lead to higher rates and a stronger currency
Core CPI / Core PCEInflation without volatile food and energy pricesCentral banks watch it closely
NFP (Non-Farm Payrolls)Number of US jobs added last month, usually released on the first FridayOne of the most volatile releases for USD, gold and indices
Unemployment Rate / ClaimsShare of people without a job / weekly jobless claimsA read on the labor market
GDPTotal economic output and growthOverall health of the economy
PMIBusiness activity survey; above 50 means expansion, below 50 means contractionAn early signal of where the economy is heading
Retail SalesChange in consumer spendingConsumer spending drives a large part of growth
FOMC Minutes / StatementsNotes and statements from the US Federal ReserveHints about future rate moves
m/m, q/q, y/yMonth-over-month, quarter-over-quarter, year-over-yearTells you what period the number compares against
Flash / Prelim / FinalFirst, preliminary and final estimatesFlash readings usually move the market most
Bank HolidayMarkets or banks closed in that countryLower liquidity, so spreads can widen

Who uses this Actor?

  • Forex traders checking high-impact news before entering a trade
  • Trading bot and EA developers adding a news filter to avoid volatility spikes
  • Fintech apps and websites showing an economic calendar to their users
  • Discord and Telegram bots posting daily or weekly market events and results
  • Analysts, researchers and students building historical datasets of macroeconomic releases to study their effect on currencies, gold, oil, stocks and crypto
  • Content creators preparing a weekly "news to watch" post

πŸ’¬ Support

Questions, problems or ideas? Message us on Telegram: @pintoflow

Telegram is the fastest way to get a response. Reach out there for:

  • Help setting up a run, schedule or integration
  • Bug reports (please include your input and the error from the run log)
  • Feature requests, such as new filters, fields or output formats
  • Custom versions of this Actor

You can also open an issue in the Issues tab on this page.


Keywords: forex factory scraper, forexfactory calendar API, economic calendar scraper, forex calendar data, forex news API, high impact news, NFP release dates, CPI release dates, central bank calendar, interest rate decision dates, macroeconomic events dataset, historical economic calendar, trading bot news filter, MT4 / MT5 news filter, economic events export to CSV / Excel / JSON.