Forex Factory Economic Calendar Scraper
Pricing
from $1.50 / 1,000 calendar events
Pricing
from $1.50 / 1,000 calendar events
Rating
0.0
(0)
Developer
Paweł
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
📅 Forex Factory Economic Calendar Scraper
🎯 Every market-moving release from the Forex Factory economic calendar — actual, forecast, previous and revised figures — in your timezone, ready for your trading models, bots and dashboards.
Get every scheduled event for USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD and CNY: date and time converted to the timezone you choose, impact level (high / medium / low / holiday), category (inflation, employment, central bank…), the actual figure next to forecast and previous, revisions, and whether the print beat or missed. Add each indicator's specs (source, what it measures, usual effect, frequency, next release) and its past releases, back to 2000 for the major prints. Run it in monitor mode every few minutes and get only the actuals that were just released — straight to Telegram, Discord, Slack or your webhook.
🚀 What Does It Do?
This scraper reads the Forex Factory economic calendar and collects structured, ready-to-use data for any date range from 2007 to the end of next year. No copying tables by hand, no timezone math — pick your days, filters and timezone and hit Start.
💡 Three ways to use it:
- 📆 Date range — today, tomorrow, this / next / last week, this / next / last month, or any custom dates (years of history in one run).
- 🔗 Calendar links — paste any Forex Factory calendar link (a day, week, month or range — or one event) and get exactly what that page shows.
- 🔔 Monitor mode — schedule it every 1–15 minutes; each run outputs only the events whose actual just came out (or, if you prefer, every change: new events, forecast revisions, reschedules).
👥 Who Is This For?
| 🏢 Use Case | 💬 How It Helps |
|---|---|
| 🤖 Algo & bot traders | Feed actual vs forecast into your strategy seconds after the release, and pause trading around high-impact news |
| 📈 Discretionary FX traders | A clean weekly plan of high-impact events in your own timezone, plus alerts the moment NFP, CPI or a rate decision lands |
| 🧪 Quants & researchers | Years of releases with forecasts and revisions for backtesting news-driven moves and surprise indices |
| 📰 Financial media & newsletters | Auto-build "week ahead" calendars and "what just printed" posts |
| 🏦 Brokers & fintech apps | Power an in-app economic calendar or news-risk warnings without maintaining a scraper |
| 📊 Analysts & dashboards | Send the calendar to Google Sheets, Power BI or your database on a schedule |
✨ Features
- 🕒 Your timezone, done right — every date and time converted to any timezone (with daylight saving), plus the UTC time and Unix timestamp
- 🔥 Impact levels — high, medium, low and holiday / non-economic events
- 🏷️ Categories — growth, inflation, employment, central bank, bonds, housing, consumer and business surveys, speeches, misc
- 📊 Actual / Forecast / Previous / Revised — both as shown ("29K", "0.3%") and as numbers with their unit
- ✅ Beat or miss — whether the actual came in better or worse than forecast for the currency, and which way the previous was revised
- 📖 Event specs — source, what it measures, usual effect, frequency, next release date, notes and why traders care
- 🗂️ Value history — the last releases of each indicator, or the full series back to 2000 for major prints
- 🔔 Monitor mode — outputs only the actuals released since the last run; you pay only for what is new
- 📣 Instant alerts — Telegram, Discord, Slack or any webhook, with the figures and the surprise in the message
- 🎛️ Smart Filters — currencies, impact, category, keywords, exclusions, released-only
- 📜 Deep history — any range from 2007 onwards; long ranges are handled automatically
- ⚡ Fast & Scalable — a full month (400+ events) in about 10 seconds, years of history in one run
- 🔁 Deduplication — every event appears once, even across overlapping ranges
- 📤 Export Anywhere — Download results as JSON, CSV, Excel, or push to Google Sheets, Zapier, Make, or your CRM
🎛️ Filters & Options
| Option | What It Does |
|---|---|
| 📅 Date range | Today, tomorrow, yesterday, today + tomorrow, this / next / last week, this / next / last month, or custom dates |
| 📆 Start / End date | The exact days for a custom range |
| 🕒 Timezone | Timezone for all dates and times (and for what "today" means) |
| 🗓️ Week starts on | Sunday like Forex Factory, or Monday |
| 💱 Currencies | Only events for the currencies you trade |
| 🔥 Impact | Only high, medium, low or holiday events |
| 🏷️ Categories | Only inflation, employment, central bank, speeches… |
| 🔤 Keywords | Only events whose title contains words like "CPI", "Non-Farm", "PMI" |
| 🚫 Exclude keywords | Drop noise such as "Bond Auction" or "Speaks" |
| ✅ Only events with an actual | Keep only events that have already been released |
| 📖 Include details & history | Add each event's specs and past releases |
| 🗂️ History length | How many past releases per event — or the full series |
| 🔔 Monitor mode | Output only what changed since the last run |
| 🎯 What to output in monitor mode | Released actuals only, or all changes |
| 🧾 Also output unchanged events | Get the full list, each event tagged new / updated / unchanged |
| 🏷️ Monitor name | Keep several independent monitors side by side |
| 📣 Alerts | Webhook, Telegram, Discord and Slack, with how many events per message |
| 🔢 Max Results | Control how many events to extract per run |
| 🔗 Direct URLs | Optionally provide Forex Factory calendar links to scrape |
🧪 Example Inputs
🔴 This week's high-impact USD and EUR events, in New York time
{"period": "thisWeek","timezone": "America/New_York","currencies": ["USD", "EUR"],"impacts": ["high"]}
🔔 "Just released" feed — run every 5 minutes, alert in Telegram
{"period": "today","timezone": "Europe/London","impacts": ["high", "medium"],"incrementalMode": true,"monitorEmit": "releases","stateKey": "my-actuals-feed","telegramBotToken": "123456:ABC-your-bot-token","telegramChatId": "-1001234567890"}
🧪 Five years of US CPI and NFP with forecasts, for backtesting
{"period": "custom","startDate": "2021-01-01","endDate": "2025-12-31","currencies": ["USD"],"keywords": ["CPI m/m", "Non-Farm Employment Change"]}
📖 Next week's central bank events with full specs and the last 12 releases
{"period": "nextWeek","timezone": "Europe/Warsaw","categories": ["centralBank"],"includeDetails": true,"historyLimit": 12}
🔗 A calendar link you already use
{"startUrls": [{ "url": "https://www.forexfactory.com/calendar?month=last" }],"impacts": ["high"]}
📦 What You Get (Output Fields)
Every calendar event includes:
🗓️ Event
| Field | Example |
|---|---|
| eventId | 146912 |
| title | Non-Farm Employment Change |
| fullTitle | US Non-Farm Employment Change |
| currency | USD |
| countryCode / country | US / United States |
| impact | high |
| impactTitle | High Impact Expected |
| category | Employment |
| eventUrl | https://www.forexfactory.com/calendar?day=oct2.2026#detail=146912 |
| eventTypeUrl | https://www.forexfactory.com/calendar/66-us-non-farm-employment-change |
🕒 Time
| Field | Example |
|---|---|
| date | 2026-10-02 |
| time | 08:30 |
| dateTime | 2026-10-02T08:30:00-04:00 |
| dateTimeUtc | 2026-10-02T12:30:00.000Z |
| timestamp | 1790944200 |
| timezone | America/New_York |
| timeStatus | scheduled (or allDay, tentative, other) |
| timeLabel | null (or All Day, Tentative, Day 2) |
📊 Figures
| Field | Example |
|---|---|
| actual / forecast / previous | 29K / 89K / 162K |
| revisedPrevious | 133K |
| actualValue / forecastValue / previousValue / revisedPreviousValue | 29 / 89 / 162 / 133 |
| unit | K |
| isReleased | true |
| actualVsForecast | worse |
| revisionDirection | worse |
| notice | Source released data 2 days earlier than scheduled |
📖 Details & History (when details are on)
| Field | Example |
|---|---|
| details.source | Bureau of Labor Statistics |
| details.measures | Change in the number of employed people during the previous month, excluding the farming industry |
| details.usualEffect | 'Actual' greater than 'Forecast' is good for currency |
| details.frequency | Released monthly, usually on the first Friday after the month ends |
| details.nextReleaseDate | 2026-11-06 |
| details.whyTradersCare | Job creation is an important leading indicator of consumer spending… |
| history | [{ "date": "2026-09-04", "actual": "162K", "forecast": "55K", "revisedActual": "133K" }, …] |
🔔 Monitor mode
| Field | Example |
|---|---|
| changeType | UPDATED |
| actualReleased | true |
| changedFields | ["actual"] |
| previousActual | null |
| firstSeenAt | 2026-10-02T12:00:04.512Z |
📊 Example Output
{"eventId": 146912,"eventTypeId": 66,"title": "Non-Farm Employment Change","fullTitle": "US Non-Farm Employment Change","currency": "USD","region": "US","countryCode": "US","country": "United States","impact": "high","impactTitle": "High Impact Expected","category": "Employment","date": "2026-10-02","time": "08:30","dateTime": "2026-10-02T08:30:00-04:00","dateTimeUtc": "2026-10-02T12:30:00.000Z","timestamp": 1790944200,"timezone": "America/New_York","timeStatus": "scheduled","timeLabel": null,"actual": "29K","forecast": "89K","previous": "162K","revisedPrevious": "133K","actualValue": 29,"forecastValue": 89,"previousValue": 162,"revisedPreviousValue": 133,"unit": "K","isReleased": true,"actualVsForecast": "worse","revisionDirection": "worse","hasDataValues": true,"notice": null,"eventUrl": "https://www.forexfactory.com/calendar?day=oct2.2026#detail=146912","eventTypeUrl": "https://www.forexfactory.com/calendar/66-us-non-farm-employment-change","details": {"source": "Bureau of Labor Statistics","sourceUrl": "https://www.bls.gov/","latestReleaseUrl": "http://www.bls.gov/news.release/empsit.nr0.htm","measures": "Change in the number of employed people during the previous month, excluding the farming industry","usualEffect": "'Actual' greater than 'Forecast' is good for currency","frequency": "Released monthly, usually on the first Friday after the month ends","nextRelease": "Nov 6, 2026","nextReleaseDate": "2026-11-06","nextReleaseUrl": "https://www.forexfactory.com/calendar?day=nov6.2026#detail=146914","notes": "This is vital economic data released shortly after the month ends. The combination of importance and earliness makes for hefty market impacts","whyTradersCare": "Job creation is an important leading indicator of consumer spending, which accounts for a majority of overall economic activity","alsoCalled": "Non-Farm Payrolls, NFP, Employment Change"},"history": [{"eventId": 146911,"date": "2026-09-04","period": "Sep 2026","actual": "162K","forecast": "55K","revisedActual": "133K","actualValue": 162,"forecastValue": 55,"revisedActualValue": 133}],"scrapedAt": "2026-10-20T20:18:33.764Z"}
📋 Dataset Views
The Apify Console gives you 5 ready-made table views to quickly browse your results:
| View | What It Shows |
|---|---|
| 📊 Overview | Date, time, currency, impact, event, actual / forecast / previous, beat or miss |
| 🔢 Figures | The parsed numbers with units, ready for analysis |
| 🔔 Monitor | What changed since the last run and which actuals were just released |
| 📖 Details | Event specs and history |
| 📋 Full Details | Every single field — the complete dataset |
❓ FAQ
🤔 Which timezone are the times in?
The one you choose — any timezone name such as America/New_York, Europe/London or Asia/Tokyo, daylight saving included. Every event also has its UTC time and a Unix timestamp, so nothing is ambiguous. "Today" and "this week" are counted in your timezone too.
🤔 How fast do I get a fresh actual? As fast as you schedule it. A monitor run takes a few seconds; scheduled every minute or every few minutes, you see the actual shortly after Forex Factory shows it. Only the new releases are output, so frequent runs stay cheap.
🤔 What about holidays and "Tentative" events?
They are included with timeStatus set to allDay, tentative or other, the original label (e.g. "Day 2") and no clock time — they stay on the calendar day Forex Factory lists them under.
🤔 How far back does the history go? The calendar itself goes back to 2007 — ask for any custom date range. With details on, the history of a major indicator goes back to 2000.
🤔 Can I export the data? Yes — JSON, CSV, Excel, XML, HTML, RSS. You can also push data directly to Google Sheets, Zapier, Make, or any webhook/API endpoint.
🤔 How often should I run this? Weekly or daily for planning; every few minutes in monitor mode for live releases. You can schedule automatic runs on Apify with just a few clicks.
🤔 Does it work with proxies? Yes — it works with Apify's built-in proxy service and the standard datacenter proxy is all it needs. No residential proxy required.
🛠️ Need Custom Filters or Features?
I'm happy to customize this scraper for your specific needs! 🤝
Whether you need:
- 🎯 Additional filters (only surprises above a threshold, only first-tier indicators, per-currency watchlists)
- 📊 Extra data fields or custom output formats
- 🔄 Integration with your CRM, Google Sheets, or database
- ⏰ Scheduled scraping with automatic deduplication
- 🌐 Scraping from other economic calendar platforms alongside Forex Factory
👉 Don't hesitate to reach out via private message — I respond quickly and I'm always open to building exactly what you need. No request is too small or too specific!
⚖️ Legal & Ethical Use
This scraper collects only publicly available information from the Forex Factory calendar. It does not log in, access private data or touch the forum. Forex Factory is an independent site not affiliated with this tool; please use the data responsibly and in compliance with applicable laws and the site's terms of service.