Free lookup
- Check calendars and night-session dates
- Use public APIs and downloads
- Combine and format files yourself
A sample of the data pack included in Markets Open Pro: the same free calendar facts, consolidated into Excel, CSV and JSON.
Sample download needs no login.
Generated from sample data; shows what you can do with the pack.
Confirmed closed
Civil night session 21:00–02:30 (+1 day) · Trading date 2026-10-12
Next trading date Not yet confirmed
Public sample: 15 calendar rows, 10 session rows, 3 coverage rows and 4 sources. Selected rows only, not the full annual pack.
Start, Calendars, Sessions, Coverage, Sources and Fields. Filter dates and products; check coverage and source links in the same file.
calendars.csv · product-sessions.csv · coverage.csv · sources.csv · pack.json · dictionary.json · README.txt · manifest.json · marketsopen-data-pack.xlsx
The manifest records file hashes. The dictionary explains every column, null values and CSV encoding. Source documents are linked, not reproduced.
The complete generated 2026 snapshot has 13 market/channel scopes, 4,745 calendar rows, 32,120 product-session rows and 18 sources. These are counts from this snapshot, not a guarantee of future-year coverage.
Full-pack scopes: BSE, CFFEX, CZCE, DCE, GFEX, HKEX, INE, NB, SB, SGE, SHFE, SSE, SZSE. Public sample scopes: SHFE, SSE, HKEX.
A few columns are shown below. Downloads retain the complete field set. All times are local to the row’s time zone.
| Date | Market | status | is_trading_day | civil_evening_has | Evening trading date |
|---|---|---|---|---|---|
| 2026-09-30 | HKEX | open | true | false | null |
| 2026-10-01 | HKEX | closed | false | false | null |
| 2026-10-09 | HKEX | open | true | false | null |
| 2026-10-12 | HKEX | open | true | false | null |
| 2026-12-31 | HKEX | half_day | true | false | null |
| 2026-09-30 | SHFE | open | true | false | null |
| 2026-10-01 | SHFE | closed | false | false | null |
| 2026-10-09 | SHFE | open | true | true | 2026-10-12 |
| 2026-10-12 | SHFE | open | true | true | 2026-10-13 |
| 2026-12-31 | SHFE | open | true | null | null |
| 2026-09-30 | SSE | open | true | false | null |
| 2026-10-01 | SSE | closed | false | false | null |
| 2026-10-09 | SSE | open | true | false | null |
| 2026-10-12 | SSE | open | true | false | null |
| 2026-12-31 | SSE | open | true | false | null |
| Date | Product | Day sessions | Civil evening | Trading date | Incoming evening date |
|---|---|---|---|---|---|
| 2026-09-30 | SHFE.au | [["09:00","10:15"],["10:30","11:30"],["13:30","15:00"]] | false | null | 2026-09-29 |
| 2026-10-01 | SHFE.au | [] | false | null | null |
| 2026-10-09 | SHFE.au | [["09:00","10:15"],["10:30","11:30"],["13:30","15:00"]] | 21:00–02:30 (+1 day) | 2026-10-12 | 2026-10-08 |
| 2026-10-12 | SHFE.au | [["09:00","10:15"],["10:30","11:30"],["13:30","15:00"]] | 21:00–02:30 (+1 day) | 2026-10-13 | 2026-10-09 |
| 2026-12-31 | SHFE.au | [["09:00","10:15"],["10:30","11:30"],["13:30","15:00"]] | null | null | 2026-12-30 |
| 2026-09-30 | SHFE.cu | [["09:00","10:15"],["10:30","11:30"],["13:30","15:00"]] | false | null | 2026-09-29 |
| 2026-10-01 | SHFE.cu | [] | false | null | null |
| 2026-10-09 | SHFE.cu | [["09:00","10:15"],["10:30","11:30"],["13:30","15:00"]] | 21:00–01:00 (+1 day) | 2026-10-12 | 2026-10-08 |
| 2026-10-12 | SHFE.cu | [["09:00","10:15"],["10:30","11:30"],["13:30","15:00"]] | 21:00–01:00 (+1 day) | 2026-10-13 | 2026-10-09 |
| 2026-12-31 | SHFE.cu | [["09:00","10:15"],["10:30","11:30"],["13:30","15:00"]] | null | null | 2026-12-30 |
SHFE.au on 2026-10-09 has an evening session assigned to 2026-10-12. The 2026-10-12 row identifies 2026-10-09 as its incoming evening. These columns answer different questions.
On 2026-10-01, is_trading_day=false is an explicit closure and day_sessions=[] means closed. On 2026-12-31, civil_evening_has=null with reason=next_trading_date_unverified: next-year attribution is unconfirmed. It must not be treated as false.
null means unknown or unavailable; false is an explicit negative; not_applicable means the question does not apply.
The coverage rows below retain annual counters for the selected scopes. They do not count the public sample subset. Consult the coverage table before using a scope or year.
| Scope | Calendar rows | Known | Unknown | Product rows |
|---|---|---|---|---|
| HKEX | 365 | 365 | 0 | 0 |
| SHFE | 365 | 365 | 0 | 7300 |
| SSE | 365 | 365 | 0 | 0 |
as_of is the validity-check date for the current engine snapshot. It does not reconstruct what was known on that date. CSV and JSON preserve all sample fields and provenance; Excel uses selected columns for readability.
The standard pack includes actual retained version exports. No live feed, SLA, custom service, monthly fresh-data guarantee or historical point-in-time reconstruction is included. Snapshot counts are not a guarantee of future-year coverage.
Data is CC BY 4.0: retain attribution and data_version. Official source documents have their own rights.
Core facts stay free. See Markets Open Pro →