TradingView Economic Calendar – Today (AU/US/GB) avatar

TradingView Economic Calendar – Today (AU/US/GB)

Pricing

from $0.01 / 1,000 results

Go to Apify Store
TradingView Economic Calendar – Today (AU/US/GB)

TradingView Economic Calendar – Today (AU/US/GB)

Scrapes TradingView's economic calendar filtered to US/AU/GB and extracts events falling on 'today' in a given IANA timezone (default Australia/Sydney).

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

CloudStar

CloudStar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Categories

Security

Limited permissions

Share

TradingView Economic Calendar — Today (AU/US/GB)

Apify actor that scrapes TradingView's economic calendar (https://www.tradingview.com/economic-calendar/), filtered to a set of countries (default US,AU,GB), and reports which events fall on today in a given IANA timezone (default Australia/Sydney, i.e. AEDT/AEST — the zone resolves daylight saving automatically, so no manual offset math is needed across the switch).

How it works

  • No stable JSON API exists for this page (the data is backed by a WebSocket, not a plain XHR), so the actor drives a real headless Chromium via Playwright/Crawlee and reads the rendered DOM.
  • The browser context's timezoneId is set to the target timezone, which makes TradingView itself render every row's timestamp in that zone — confirmed by reading each row's <time datetime="..."> attribute (a real ISO-8601 UTC instant embedded in the DOM) and converting it with Luxon.
  • "Today" is computed by comparing each event's timestamp to now, both in the target zone — not by trusting the page's own day-section headers.

Run locally

npm install
npx playwright install chromium # one-time
npm test # pure timezone logic, no network
npm run discover # dumps rendered HTML/screenshot to scripts/.out, for selector upkeep
npm run start:dev # runs the actor against the live site

Output lands in storage/key_value_stores/default/OUTPUT.json (summary) and storage/datasets/default/ (one JSON file per matching event). Set headless: false via a local storage/key_value_stores/default/INPUT.json while iterating, to watch the browser.

If TradingView changes their markup

Row extraction in src/scraper.ts relies on the stable data-name/ data-country/data-symbol attributes and a <time datetime> element, plus a couple of [class*="..."] substring matches against CSS-module class names that will rotate on TradingView's next frontend deploy. If the actor starts returning zero rows: run npm run discover, open scripts/.out/calendar.html, find the new class names for title/importance/ value cells, and update the selectors in scraper.ts (dated comment at the top of that file).

If TradingView starts blocking the actor

  1. Set proxyGroups: ["RESIDENTIAL"] in the input — cheap, highest success rate.
  2. If still blocked, add playwright-extra + a stealth plugin to patch headless-detection fingerprints Crawlee's built-in fingerprinting doesn't cover.

Deploy to Apify

npx apify-cli@latest login
npx apify-cli@latest push

(No global Apify CLI install required — npx fetches it transiently.)