---
title: "Get Market Hours Calendar."
method: GET
path: "/v1/calendars/market-hours"
tags: ["Calendar"]
---

# Get Market Hours Calendar.

`GET /v1/calendars/market-hours`

## Request

- Base URL: `https://api.clearstreet.com`
- URL: `https://api.clearstreet.com/v1/calendars/market-hours`
- Auth: HTTP bearer

Retrieves comprehensive trading hours including pre-market, regular, and after-hours sessions.
Returns market status, session times, and next session schedules.

## Query parameters

- `date` string
- `market` 'us_equities' | 'us_options' | 'us_event_contracts': Market type for market hours calendar endpoint

## Response `200`

Market hours calendar

- object
  - `error` ApiError: A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required: The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required: A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required: Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `page_number` integer, nullable: Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `request_id` string, required: A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable: Total number of items available (not just in this page).
    - `total_pages` integer, nullable: Total number of pages available.
  - `data` MarketHoursDetail[], required
    - `current_time` string, date-time, required: Current time in market timezone with offset
    - `date` string, date, required: The date for which market hours are provided
    - `market` 'us_equities' | 'us_options' | 'us_event_contracts', required: Market type for market hours calendar endpoint
    - `market_name` string, required: Human-readable market name
    - `next_sessions` TradingSessions, required: Trading sessions for a market day with full timestamps
      - `after_hours` SessionSchedule: Session schedule with open and close timestamps
        - `close` string, date-time, required: Session close timestamp with timezone offset
        - `open` string, date-time, required: Session open timestamp with timezone offset
        - `time_until_close` string, duration, nullable: ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.
        - `time_until_open` string, duration, nullable: ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.
      - `maintenance` SessionSchedule: Session schedule with open and close timestamps
        - `close` string, date-time, required: Session close timestamp with timezone offset
        - `open` string, date-time, required: Session open timestamp with timezone offset
        - `time_until_close` string, duration, nullable: ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.
        - `time_until_open` string, duration, nullable: ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.
      - `overnight` SessionSchedule: Session schedule with open and close timestamps
        - `close` string, date-time, required: Session close timestamp with timezone offset
        - `open` string, date-time, required: Session open timestamp with timezone offset
        - `time_until_close` string, duration, nullable: ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.
        - `time_until_open` string, duration, nullable: ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.
      - `pre_market` SessionSchedule: Session schedule with open and close timestamps
        - `close` string, date-time, required: Session close timestamp with timezone offset
        - `open` string, date-time, required: Session open timestamp with timezone offset
        - `time_until_close` string, duration, nullable: ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.
        - `time_until_open` string, duration, nullable: ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.
      - `regular` SessionSchedule: Session schedule with open and close timestamps
        - `close` string, date-time, required: Session close timestamp with timezone offset
        - `open` string, date-time, required: Session open timestamp with timezone offset
        - `time_until_close` string, duration, nullable: ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.
        - `time_until_open` string, duration, nullable: ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.
    - `status` MarketStatus, required: Market status information
      - `current_session` 'overnight' | 'pre_market' | 'regular' | 'after_hours': Session type for market hours
      - `day_type` 'TRADING_DAY' | 'EARLY_CLOSE' | 'HOLIDAY' | 'WEEKEND', required: Day type for market hours - indicates the type of trading day
      - `is_open` boolean, required: Whether the market is currently open (real-time)
    - `timezone` string, required: IANA timezone identifier for the market
    - `today_sessions` TradingSessions, required: Trading sessions for a market day with full timestamps
      - `after_hours` SessionSchedule: Session schedule with open and close timestamps
        - `close` string, date-time, required: Session close timestamp with timezone offset
        - `open` string, date-time, required: Session open timestamp with timezone offset
        - `time_until_close` string, duration, nullable: ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.
        - `time_until_open` string, duration, nullable: ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.
      - `maintenance` SessionSchedule: Session schedule with open and close timestamps
        - `close` string, date-time, required: Session close timestamp with timezone offset
        - `open` string, date-time, required: Session open timestamp with timezone offset
        - `time_until_close` string, duration, nullable: ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.
        - `time_until_open` string, duration, nullable: ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.
      - `overnight` SessionSchedule: Session schedule with open and close timestamps
        - `close` string, date-time, required: Session close timestamp with timezone offset
        - `open` string, date-time, required: Session open timestamp with timezone offset
        - `time_until_close` string, duration, nullable: ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.
        - `time_until_open` string, duration, nullable: ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.
      - `pre_market` SessionSchedule: Session schedule with open and close timestamps
        - `close` string, date-time, required: Session close timestamp with timezone offset
        - `open` string, date-time, required: Session open timestamp with timezone offset
        - `time_until_close` string, duration, nullable: ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.
        - `time_until_open` string, duration, nullable: ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.
      - `regular` SessionSchedule: Session schedule with open and close timestamps
        - `close` string, date-time, required: Session close timestamp with timezone offset
        - `open` string, date-time, required: Session open timestamp with timezone offset
        - `time_until_close` string, duration, nullable: ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.
        - `time_until_open` string, duration, nullable: ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

## Changes

- **2026-10-21** `49c5c6b23633`: 1 warning, 3 info
  - added the new `us_event_contracts` enum value to the `allOf[subschema #2]/data/items/market` response property for the response status `200`
  - added the new enum value `us_event_contracts` to the `query` request parameter `market`
  - added the optional property `allOf[subschema #2]/data/items/next_sessions/maintenance` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/items/today_sessions/maintenance` to the response with the `200` status
- **2026-10-16** `1bd9eddeffc8`: 1 warning, 2 info
  - added the new `overnight` enum value to the `allOf[subschema #2]/data/items/status/current_session/oneOf[#/components/schemas/MarketSessionType]/` response property for the response status `200`
  - added the optional property `allOf[subschema #2]/data/items/next_sessions/overnight` to the response with the `200` status
  - added the optional property `allOf[subschema #2]/data/items/today_sessions/overnight` to the response with the `200` status
- **2026-07-14** `9632aa50482b`: 1 info
  - the `query` request parameter `date` became optional
- **2026-07-14** `6ffc79452bbe`: 1 breaking
  - the `query` request parameter `date` became required
- **2026-07-14** `2d8a75e46de7`: 1 info
  - the `query` request parameter `date` became optional

[Operation history](https://skmtc.dev/clear-street/apis/clear-street-trading-api/changes/v1/calendars/market-hours/get.md)

---

[API](https://skmtc.dev/clear-street/apis/clear-street-trading-api.md) - [All operations](https://skmtc.dev/clear-street/apis/clear-street-trading-api/llms.txt) - [OpenAPI document](https://skmtc.dev/clear-street/apis/clear-street-trading-api/revisions/52e77ea7d731?raw)
