ES Futures Trading Hours and the Daily Break
ES futures trading hours in CT and ET: the Sunday 5 p.m. open, the 4 p.m. maintenance break, and why the old 3:15 p.m. equity index halt no longer applies.
ES futures trading hours run from Sunday at 5:00 p.m. Central to Friday at 4:00 p.m. Central, which works out to 23 hours of trading per day and 115 hours across the week. One break interrupts each weekday: the 60-minute maintenance halt that starts at 4:00 p.m. CT, 5:00 p.m. ET in New York terms. Every clock time below is given in Chicago time with its Eastern equivalent, since CME publishes the Globex calendar in CT.
What are the ES futures trading hours on CME Globex?
The E-mini S&P 500 futures contract, quoted under the root ES, trades on CME Globex from Sunday evening through Friday afternoon. The symbol you actually enter carries a month and year code after that root, which reading a futures symbol walks through. The weekly clock looks like this:
- Sunday, 5:00 p.m. CT (6:00 p.m. ET): the trading week opens. That evening session already carries Monday's trade date.
- Monday to Thursday, 4:00 p.m. CT (5:00 p.m. ET): trading halts for the daily maintenance window.
- Monday to Thursday, 5:00 p.m. CT (6:00 p.m. ET): the next trade date opens and runs overnight.
- Friday, 4:00 p.m. CT (5:00 p.m. ET): the week ends. There is no Saturday session, and nothing on Sunday until the evening reopen.
A full ES trading day runs from 5:00 p.m. CT to 4:00 p.m. CT the next afternoon: 23 hours of trading, with the missing hour sitting in the maintenance window between trade dates. The Micro E-mini keeps identical hours at one tenth the contract size, a difference covered in micro E-mini vs E-mini futures.
Why do ES hours look an hour off from New York?
CME Group is a Chicago exchange and publishes every product's hours in Central Time. Eastern Time runs one hour ahead, and both zones change to daylight saving on the same US dates, so the gap stays a flat hour all year. Converting is always addition. A New York reader who sees "the S&P futures open at 5" and waits until 5:00 p.m. local time has already missed the first hour of the week. For the equity side of the same clock, written in ET throughout, see our stock market hours guide.
Why do some pages list a second halt at 3:15 p.m. CT?
Between November 2012 and June 2021, equity index futures carried a second daily pause. Trading stopped at 3:15 p.m. CT (4:15 p.m. ET) and restarted 15 minutes later at 3:30 p.m. CT, a leftover from the days when the same contracts also changed hands in open outcry pits. CME removed that halt on June 28, 2021, and ES has run continuously through the afternoon into the 4:00 p.m. CT maintenance stop ever since. Broker help pages and older explainers written before that date still describe two afternoon halts. As of September 2026 there is one, and CME's contract specifications are the page to check whenever a third party disagrees.
What does the cash session mean for volume and spread?
The US cash equity session runs 8:30 a.m. to 3:00 p.m. CT, the familiar 9:30 a.m. to 4:00 p.m. ET. ES quotes through the night, but the hours when the underlying 500 stocks are open are the hours when size trades. The panel below counts every minute of volume on the SPY tape, the S&P 500 ETF written on the same index, and buckets it by Eastern clock hour across the trailing sessions. The futures tape is not plotted here. What you are looking at is the cash market whose schedule the futures clock is built around.
| et_hour | avg_volume_millions | share_pct |
|---|---|---|
| 04:00 | 0.12 | 0.25 |
| 05:00 | 0.05 | 0.1 |
| 06:00 | 0.06 | 0.13 |
| 07:00 | 0.22 | 0.47 |
| 08:00 | 0.4 | 0.84 |
| 09:00 | 4.68 | 9.95 |
| 10:00 | 5.95 | 12.64 |
| 11:00 | 4.95 | 10.51 |
| 12:00 | 3.97 | 8.43 |
| 13:00 | 3.68 | 7.82 |
| 14:00 | 4.69 | 9.96 |
| 15:00 | 11.68 | 24.82 |
| 16:00 | 6.09 | 12.95 |
| 17:00 | 0.34 | 0.73 |
| 18:00 | 0.13 | 0.28 |
| 19:00 | 0.06 | 0.13 |
The exact SQL behind every number
WITH hourly AS
(
SELECT
formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:00') AS et_hour,
sum(volume) AS vol,
countDistinct(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 120
AND window_start < today() - 2
GROUP BY et_hour
)
SELECT
et_hour,
round(vol / (SELECT max(sessions) FROM hourly) / 1e6, 2) AS avg_volume_millions,
round(100 * vol / (SELECT sum(vol) FROM hourly), 2) AS share_pct
FROM hourly
ORDER BY et_hourThe panel covers 16 clock hours. At 04:00 ET, the earliest hour with prints on the tape, an average session trades 0.12 million shares, which is 0.25% of the day's total. Step into the middle of the cash session and the 13:00 ET hour carries 3.68 million shares, or 7.82% of the day. By the last hour on the tape, 19:00 ET, the figure is back down to 0.06 million. The same shape governs the extended equity session, which after hours and premarket trading covers in detail.
Thin volume shows up in the quote as well. The next panel samples the first minute of each hour on Wednesday, September 16, 2026, and averages the gap between the best bid and the best offer in cents.
| et_hour | avg_spread_cents | quote_count |
|---|---|---|
| 04:00 | 5.91 | 808 |
| 05:00 | 5.97 | 629 |
| 06:00 | 4.39 | 540 |
| 07:00 | 6.05 | 7699 |
| 08:00 | 4 | 593 |
| 09:00 | 3.84 | 2618 |
| 10:00 | 1.98 | 7298 |
| 11:00 | 1.48 | 7668 |
| 12:00 | 1.78 | 3327 |
| 13:00 | 1.97 | 3439 |
| 14:00 | 8.41 | 18702 |
| 15:00 | 3.19 | 25416 |
| 16:00 | 3.53 | 6463 |
| 17:00 | 10 | 3 |
| 18:00 | 7.37 | 308 |
| 19:00 | 5.08 | 378 |
The exact SQL behind every number
SELECT
formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:00') AS et_hour,
round(avg(toFloat64(ask_price) - toFloat64(bid_price)) * 100, 2) AS avg_spread_cents,
count() AS quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime('2026-09-16 08:00:00', 'UTC')
AND sip_timestamp < toDateTime('2026-09-17 01:00:00', 'UTC')
AND toMinute(toTimeZone(sip_timestamp, 'America/New_York')) = 0
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_hour
ORDER BY et_hourAt 04:00 ET the average quoted spread measured 5.91 cents. At 13:00 ET, with the cash market open, it measured 1.97 cents across 3439 quote updates inside that single minute. Tight quotes inside the cash window and wider ones outside it: that is the practical content of "nearly 24 hours". The contract is open the whole time, and the depth standing behind it is not constant.
The last hour: 3:00 p.m. CT to 4:00 p.m. CT
The cash close at 3:00 p.m. CT (4:00 p.m. ET) is the moment the 500 underlying stocks stop trading in regular hours. CME sets the daily settlement price for ES from the volume-weighted average price of trades in the final 30 seconds before it, 2:59:30 to 3:00:00 p.m. CT, a window aligned with the equity close. ES itself keeps going for another full hour, until the 4:00 p.m. CT maintenance halt. Those 60 minutes are futures trading against a closed cash market: futures and their options still move, while the stocks that define the index sit quiet. For how the two index venues differ once you are trading options on them, see SPX options vs ES futures options.
The closing minute of the cash session is where the handoff becomes visible. The panel below averages SPY volume minute by minute over the final half hour of regular trading.
| et_time | avg_volume_millions |
|---|---|
| 15:30 | 0.16 |
| 15:31 | 0.12 |
| 15:32 | 0.13 |
| 15:33 | 0.13 |
| 15:34 | 0.13 |
| 15:35 | 0.18 |
| 15:36 | 0.15 |
| 15:37 | 0.12 |
| 15:38 | 0.12 |
| 15:39 | 0.14 |
| 15:40 | 0.17 |
| 15:41 | 0.14 |
| 15:42 | 0.14 |
| 15:43 | 0.14 |
| 15:44 | 0.16 |
| 15:45 | 0.22 |
| 15:46 | 0.21 |
| 15:47 | 0.2 |
| 15:48 | 0.2 |
| 15:49 | 0.22 |
The exact SQL behind every number
SELECT
formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_time,
round(sum(volume)
/ countDistinct(toDate(toTimeZone(window_start, 'America/New_York')))
/ 1e6, 2) AS avg_volume_millions
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 120
AND window_start < today() - 2
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 930 AND 960
GROUP BY et_time
ORDER BY et_timeAcross 31 minutes, the average session starts the stretch at 15:30 ET with 0.16 million shares in the bar. The last row on the panel, 16:00 ET, is the bar stamped at the closing bell itself, once regular trading has stopped, and it averages 0.3 million shares. Past that line the cash tape is done for the day. ES trades on for another hour.
Sunday night and the weekend gap
Globex reopens on Sunday at 5:00 p.m. CT while the US stock market stays shut until Monday morning. The panel below groups every session on the cash tape by weekday.
| weekday | session_count | avg_volume_millions | earliest_print_et |
|---|---|---|---|
| Monday | 15 | 44.8 | 04:00 |
| Tuesday | 17 | 45.8 | 04:00 |
| Wednesday | 17 | 46.4 | 04:00 |
| Thursday | 17 | 49.3 | 04:00 |
| Friday | 15 | 48.9 | 04:00 |
The exact SQL behind every number
WITH sessions AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(volume) AS vol,
min(toTimeZone(window_start, 'America/New_York')) AS first_bar
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 120
AND window_start < today() - 2
GROUP BY d
)
SELECT
any(formatDateTime(d, '%W')) AS weekday,
count() AS session_count,
round(avg(vol) / 1e6, 1) AS avg_volume_millions,
min(formatDateTime(first_bar, '%H:%i')) AS earliest_print_et
FROM sessions
GROUP BY toDayOfWeek(d)
ORDER BY toDayOfWeek(d)5 rows come back, one per weekday. Saturday and Sunday produce no rows at all, since the cash tape has nothing to print on either day. Monday alone accounts for 15 sessions in the window, averaging 44.8 million shares, and its earliest bar of the day lands at 04:00 ET. Everything ES does between 5:00 p.m. CT on Sunday and that first stock print happens with no US cash equity market open beside it.
How do holidays work for ES futures?
CME keeps its own holiday and early-close calendar, and it does not always match the NYSE one. Two rules are worth carrying:
- A full stock market holiday is not automatically a full futures holiday. On Thanksgiving Day, for instance, equity index futures have historically traded a shortened morning session in Chicago while the stock market stayed closed for the entire day.
- Early closes are published separately on each calendar. When the NYSE runs a 1:00 p.m. ET half day, the equity index futures early close has typically landed at 12:15 p.m. CT, which is 1:15 p.m. ET, a different minute from the stock market's.
Neither pattern repeats identically every year, and neither is a schedule to carry from memory. Check the exchange calendar for the specific product and the specific date before assuming a session exists.
FAQ
What time do ES futures open on Sunday?
5:00 p.m. CT, which is 6:00 p.m. ET. That Sunday evening session is already stamped with Monday's trade date, and it runs through the night into Monday's cash session.
How many times a day do ES futures halt?
Once. The daily maintenance break runs from 4:00 p.m. to 5:00 p.m. CT (5:00 p.m. to 6:00 p.m. ET). A second halt at 3:15 p.m. CT existed until June 28, 2021, and any page that still lists it is describing the pre-2021 schedule.
Why are ES futures hours quoted in Central time?
CME Group is headquartered in Chicago and publishes product hours in CT. Eastern time runs one hour ahead all year, so add an hour to every CT figure to read it in New York terms.
Do ES futures trade on stock market holidays?
Sometimes, and on their own timetable. The futures calendar has historically opened for part of some days when the stock market was closed outright, and its early closes fall at different minutes from the NYSE ones. The product-specific exchange calendar is the authority for any given date.
Does the cash session still matter if ES trades nearly 24 hours?
For liquidity, yes. The panels above measure volume and quoted spread on the cash tape concentrating between 9:30 a.m. and 4:00 p.m. ET, and the same hours are when the futures market carries its deepest quotes.
Every panel on this page ships with the exact SQL beneath it, expand one to see how the bars were counted. To bucket any ticker by Eastern clock hour over a window you pick, ask the question in plain English on the Strasmore terminal.