# Market calendar and trading sessions

## What is this endpoint for? <a href="#what-is-this-endpoint-for" id="what-is-this-endpoint-for"></a>

This endpoint offers supplementary market calendar and trading session reference data for user subscribing to equity Reference Rates from Kaiko. Users can query by date range, exchange code, region, asset class, or trading status to retrieve a full breakdown of trading sessions alongside holiday flags, regular trading day indicators, and the previous and next regular trading days. Data is sourced from [TradingHours.com](https://tradinghours.com) and maintained by Kaiko, with ad hoc updates when new exchanges are onboarded.

## Endpoints

{% tabs %}
{% tab title="gRPC" %}

```url
gateway.equ.kaiko.io:443 kaiko.equities.EquitiesService/MarketCalendarV2
```

{% endtab %}
{% endtabs %}

## Request fields

<table><thead><tr><th width="127.890625">Parameter</th><th width="109.234375">Required</th><th width="300.79296875">Description</th><th>Example</th></tr></thead><tbody><tr><td><code>start_date</code></td><td>Yes</td><td>Start date (yyyy-mm-dd) Cannot be earlier than 30 days before today.</td><td><code>2026-03-31</code></td></tr><tr><td><code>end_date</code></td><td>Yes</td><td>End date (yyyy-mm-dd) Cannot be later than 30 days before today.</td><td><code>2026-04-01</code></td></tr><tr><td><code>asset_class</code></td><td>Yes</td><td>Asset class of the market to filter and aggregate results by.</td><td><code>equities</code>, <code>futures</code></td></tr><tr><td><code>region</code></td><td>No</td><td>IANA timezone string to filter and aggregate results by the timezone.</td><td><code>America/New_York</code>, <code>Asia/Hong_Kong</code>, <code>Asia/Seoul</code></td></tr><tr><td><code>exch</code></td><td>No</td><td>List of exchange MIC codes</td><td><p><code>["XNYS", "BOAT"]</code></p><p>Supported exchanges: <code>"XNYS"</code>, <code>"XNAS"</code>, <code>"BOAT"</code> , <code>"XKRX"</code>, <code>"XHKG"</code></p></td></tr><tr><td><code>status</code></td><td>No</td><td>List of trading statuses</td><td><code>["OPEN_REGULAR", "OPEN_IRREGULAR"]</code></td></tr><tr><td><code>is_holiday</code></td><td>No</td><td>When set to <code>true</code>, returns only dates designated as holidays. When set to <code>false</code>, returns only non-holiday dates.</td><td><code>true</code></td></tr></tbody></table>

## Response fields

<table data-header-hidden><thead><tr><th width="262.33203125">Field</th><th>Description</th></tr></thead><tbody><tr><td><code>timezone</code></td><td>IANA timezone of the exchange.</td></tr><tr><td><code>asset_class</code></td><td>Asset class of the returned data.</td></tr><tr><td><code>data</code></td><td>List of daily market calendar entries.</td></tr><tr><td>   <mark style="color:$tint;"><code>.date</code></mark></td><td>Date of the entry (<code>yyyy-mm-dd</code>).</td></tr><tr><td>   <mark style="color:$tint;"><code>.marketMics</code></mark></td><td>List of exchange MIC codes included in the returned data.</td></tr><tr><td>   <mark style="color:$tint;"><code>.status</code></mark></td><td><p>Trading status for the date. </p><ul><li><code>OPEN_REGULAR</code> : If it is regular trading day </li><li><code>OPEN_IRREGULAR</code> : If there is any time changes</li><li><code>CLOSED</code> : If it is closed</li></ul></td></tr><tr><td>   <mark style="color:$tint;"><code>.isHoliday</code></mark></td><td><code>true</code> if the date is a weekend or public holiday.</td></tr><tr><td>   <mark style="color:$tint;"><code>.isTradingDay</code></mark></td><td><code>true</code> if the status is <code>OPEN_REGULAR</code> or <code>OPEN_IRREGULAR</code>.</td></tr><tr><td>   <mark style="color:$tint;"><code>.isRegularTradingDay</code></mark></td><td><code>true</code> if the session schedule includes a Primary Trading Session.</td></tr><tr><td>   <mark style="color:$tint;"><code>.reason</code></mark></td><td>Description of the holiday or irregular closure. Empty on regular trading days.</td></tr><tr><td>   <mark style="color:$tint;"><code>.previousRegularTradingDay</code></mark></td><td>Most recent regular trading day within the query range.</td></tr><tr><td>   <mark style="color:$tint;"><code>.nextRegularTradingDay</code></mark></td><td>Next regular trading day within the query range.</td></tr><tr><td>   <mark style="color:$tint;"><code>.sessionSchedule</code></mark></td><td>List of trading sessions for the date. Empty if the market is closed.</td></tr><tr><td>         <code>.exchanges</code></td><td>MIC code of the exchange for this session.</td></tr><tr><td>        <code>.phase_type</code></td><td>Type of trading session (e.g. <code>Primary Trading Session</code>, <code>Overnight Trading Session</code>).</td></tr><tr><td>        <code>.description</code></td><td>Detailed description of the session phase.</td></tr><tr><td>        <code>.start</code></td><td>Session start time in local time</td></tr><tr><td>        <code>.end</code></td><td>Session end time in local time</td></tr><tr><td>        <code>.is_trading</code></td><td><code>true</code> if trading activity occurs during this session.</td></tr></tbody></table>

## Request examples

{% tabs %}
{% tab title="cURL" %}
**cURL requests are intended for testing purposes only.**

{% code overflow="wrap" %}

```url
grpcurl \
 -H "Authorization: Bearer $KAIKO_API_KEY" \
 -d @ gateway.equ.kaiko.io:443 kaiko.equities.EquitiesService/MarketCalendarV2 <<EOM
{
  "start_date": "2026-03-23",
  "end_date": "2026-03-25",
  "asset_class": "equities",
  "exch":["XNAS","BOAT"],
  "region":"America/New_York",
  "status":["OPEN_REGULAR"],
  "is_holiday":false
}
EOM
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Response Example

```json
{
  "marketCalendars": [
    {
      "timezone": "America/New_York",
      "data": [
        {
          "date": "2026-04-02",
          "marketMics": [
            "BOAT",
            "XNYS"
          ],
          "status": "OPEN_REGULAR",
          "isTradingDay": true,
          "isRegularTradingDay": true,
          "sessionSchedule": [
            {
              "exchanges": [
                "XNYS"
              ],
              "phaseType": "Pre-Trading Session",
              "description": "Pre-Trading Session",
              "start": "2026-04-02T04:00:00-04:00",
              "end": "2026-04-02T09:30:00-04:00",
              "isTrading": true
            },
            {
              "exchanges": [
                "XNYS"
              ],
              "phaseType": "Primary Trading Session",
              "description": "Core Trading Session",
              "start": "2026-04-02T09:30:00-04:00",
              "end": "2026-04-02T16:00:00-04:00",
              "isTrading": true
            },
            {
              "exchanges": [
                "XNYS"
              ],
              "phaseType": "Post-Trading Session",
              "description": "Extended Hours",
              "start": "2026-04-02T16:00:00-04:00",
              "end": "2026-04-02T20:00:00-04:00",
              "isTrading": true
            }
          ]
        }
      ],
      "assetClass": "equities"
    }
  ]
}

```
