Using Market Calendar (mcal) to identify trading dates
When retrieving market data, it is beneficial to programmatically determine which dates represent actual trading dates. The Market Calendar (mcal) library enables this functionality.
# Get NYSE Schedule for date range# Documentation: https://pandas-market-calendars.readthedocs.io/en/latest/usage.htmlstart_date = '2024-01-01'end_date = '2024-06-01'import pandas as pdimport pandas_market_calendars as mcalnyse = mcal.get_calendar('NYSE')schedule = nyse.schedule(start_date=start_date, end_date=end_date)scheduleschedule.market_open.iloc[0] # open time first dateschedule.market_close.iloc[0] # close time first dateschedule.market_open.iloc[-1] # open time last dateschedule.market_close.iloc[-1] # close time last dateschedlist = list(schedule.index)schedlist
Although mcal is generally extremely reliable, it is an external library and has on occasion missed a market holiday. Implement defensive coding practices and verify results independently.
The library demonstrates strong reliability for US market holidays but cannot be vouched for with equal confidence regarding international markets.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"CloudQuant Documentation","colors":{"primary":"#0C63FF","light":"#0482E9","dark":"#0C63FF"},"logo":{"light":"https://mintcdn.com/cloudquantllc/dUpJi8fJ5Zo-VYup/images/logo-light.png?fit=max\u0026auto=format\u0026n=dUpJi8fJ5Zo-VYup\u0026q=85\u0026s=fa052089c4ca22f87554674b2f2809f9","dark":"https://mintcdn.com/cloudquantllc/dUpJi8fJ5Zo-VYup/images/logo-dark.png?fit=max\u0026auto=format\u0026n=dUpJi8fJ5Zo-VYup\u0026q=85\u0026s=e8e05e2074b371ce373cf31a9c10bbb9","href":"https://www.cloudquant.com"},"favicon":"https://mintcdn.com/cloudquantllc/i4ZueZ6YDUimt5zS/images/favicon.png?fit=max\u0026auto=format\u0026n=i4ZueZ6YDUimt5zS\u0026q=85\u0026s=76e54834562f021a034202afe9d84cf9","background":{"decoration":"gradient","color":{"light":"#F5F7FA","dark":"#060E1A"}},"navbar":{"links":[{"href":"https://www.cloudquant.com/tickets","label":"Support"}],"primary":{"type":"button","label":"CloudQuant","href":"https://www.cloudquant.com"}},"footer":{"socials":{"website":"https://www.cloudquant.com","linkedin":"https://www.linkedin.com/company/cloudquant"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Support","icon":"life-ring","href":"https://www.cloudquant.com/tickets"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cloudquantllc","hasAudioNarration":false,"actualSubdomain":"cloudquantllc","customDomains":["knowledge.cloudquant.com"],"gitSource":{"type":"github","owner":"cloudquantai","repo":"docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae559cb3c3785a7c690a927","collectionId":"cc1aa3c1-6b47-4b80-92e7-d1f70db802ee","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae559cb3c3785a7c690a927"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae559cb3c3785a7c690a927","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Documentation","count":47},{"language":"default","tag":"Connections","count":32},{"language":"default","tag":"API Reference","count":18},{"language":"default","tag":"CloudQuant Data Liberator Python Guide","count":13},{"language":"default","tag":"Administration","count":12},{"language":"default","tag":"Integrations","count":10},{"language":"default","tag":"Data Science Recipes","count":9},{"language":"default","tag":"What's New","count":8},{"language":"default","tag":"Concepts","count":5},{"language":"default","tag":"Excel Plug-In","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"customer_success@cloudquant.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"69d41f3e0ae91496fb857941","deploymentId":"69c40c4e61473c158f3ca97e","questionText":"How do I see what datasets I have access to?","status":"active","generatedBy":"manual","createdAt":"2026-04-06T21:01:50.327Z","updatedAt":"2026-04-06T21:01:50.327Z","__v":0},{"_id":"69d41f240ae91496fb85790c","deploymentId":"69c40c4e61473c158f3ca97e","questionText":"How do query a datasets?","status":"active","generatedBy":"manual","createdAt":"2026-04-06T21:01:24.631Z","updatedAt":"2026-04-06T21:01:24.631Z","__v":0}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"data-science-recipes/market-calendar","slug":"/data-science-recipes/market-calendar","pageMetadata":{"title":"Using Market Calendar (mcal) to Identify Trading Dates","description":"Programmatically determine trading dates using the pandas_market_calendars library for NYSE, CME, CBOE, NASDAQ, and other exchanges.","href":"/data-science-recipes/market-calendar"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Programmatically determine trading dates using the pandas_market_calendars library for NYSE, CME, CBOE, NASDAQ, and other exchanges.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`using-market-calendar-mcal-to-identify-trading-dates`,children:`Using Market Calendar (mcal) to identify trading dates`}),`\n`,_jsxs(_components.p,{children:[`When retrieving market data, it is beneficial to programmatically determine which dates represent actual trading dates. The `,_jsx(_components.strong,{children:`Market Calendar (mcal)`}),` library enables this functionality.`]}),`\n`,_jsx(Heading,{level:`2`,id:`us-stock-market-calendars`,children:`US stock market calendars`}),`\n`,_jsx(_components.p,{children:`Market Calendar supports multiple US exchanges including NYSE, CME, CBOE, and NASDAQ.`}),`\n`,_jsx(Heading,{level:`2`,id:`implementation-example`,children:`Implementation example`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`20`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`20`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Get NYSE Schedule for date range`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Documentation: https://pandas-market-calendars.readthedocs.io/en/latest/usage.html`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`start_date `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '2024-01-01'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`end_date `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '2024-06-01'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pandas `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pd`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` pandas_market_calendars `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` mcal`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`nyse `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` mcal.get_calendar(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'NYSE'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`schedule `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` nyse.schedule(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`start_date`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`start_date, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`end_date`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`end_date)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`schedule`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`schedule.market_open.iloc[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# open time first date`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`schedule.market_close.iloc[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# close time first date`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`schedule.market_open.iloc[`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# open time last date`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`schedule.market_close.iloc[`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# close time last date`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`schedlist `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` list`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(schedule.index)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`schedlist`})}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Although mcal is generally extremely reliable, it is an external library and has on occasion missed a market holiday. Implement defensive coding practices and verify results independently.`})}),`\n`,_jsx(_components.p,{children:`The library demonstrates strong reliability for US market holidays but cannot be vouched for with equal confidence regarding international markets.`}),`\n`,_jsx(Heading,{level:`2`,id:`resources`,children:`Resources`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://pandas-market-calendars.readthedocs.io/en/latest/usage.html`,children:`Official pandas_market_calendars Documentation`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Using Market Calendar (mcal) to Identify Trading Dates","description":"Programmatically determine trading dates using the pandas_market_calendars library for NYSE, CME, CBOE, NASDAQ, and other exchanges.","href":"/data-science-recipes/market-calendar"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Using Market Calendar (mcal) to identify trading dates","slug":"using-market-calendar-mcal-to-identify-trading-dates","depth":1,"children":[]},{"title":"US stock market calendars","slug":"us-stock-market-calendars","depth":2,"children":[]},{"title":"Implementation example","slug":"implementation-example","depth":2,"children":[]},{"title":"Resources","slug":"resources","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"cloudquantllc","siteName":"CloudQuant Documentation","title":"Using Market Calendar (mcal) to Identify Trading Dates - CloudQuant Documentation","navMaps":{"firstHrefInVersion":{"2.6":{"href":"/data-science-recipes/market-calendar","matchLevel":0},"2.5":{"href":"/data-science-recipes/market-calendar","matchLevel":0},"2.4":{"href":"/data-science-recipes/market-calendar","matchLevel":0},"2.3":{"href":"/data-science-recipes/market-calendar","matchLevel":0},"2.2":{"href":"/data-science-recipes/market-calendar","matchLevel":0},"2.0":{"href":"/data-science-recipes/market-calendar","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-07-02T00:07:05.412Z","originalFileLocation":"data-science-recipes/market-calendar.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Programmatically determine trading dates using the pandas_market_calendars library for NYSE, CME, CBOE, NASDAQ, and other exchanges.\">\u003cmeta data-mint-head name=\"application-name\" content=\"CloudQuant Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cloudquantllc/YRpp6trsUU_PLt89/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/cloudquantllc/YRpp6trsUU_PLt89/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cloudquantllc/YRpp6trsUU_PLt89/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cloudquantllc/YRpp6trsUU_PLt89/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cloudquantllc/YRpp6trsUU_PLt89/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cloudquantllc/YRpp6trsUU_PLt89/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cloudquantllc/YRpp6trsUU_PLt89/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cloudquantllc/YRpp6trsUU_PLt89/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cloudquantllc/YRpp6trsUU_PLt89/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Using Market Calendar (mcal) to Identify Trading Dates - CloudQuant Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Programmatically determine trading dates using the pandas_market_calendars library for NYSE, CME, CBOE, NASDAQ, and other exchanges.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CloudQuant Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://knowledge.cloudquant.com/data-science-recipes/market-calendar\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cloudquantllc.mintlify.app/_mintlify/api/og/v2?division=Data+Science+Recipes\u0026amp;title=Using+Market+Calendar+%28mcal%29+to+Identify+Trading+Dates\u0026amp;description=Programmatically+determine+trading+dates+using+the+pandas_market_calendars+library+for+NYSE%2C+CME%2C+CBOE%2C+NASDAQ%2C+and+other+exchanges.\u0026amp;theme=65dd9fea027cd28919fcddca\u0026amp;signature=d6c3f6f75e912c36b7613e41b8515a01ec8d71fa918d067be9762ee48a85c45b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Using Market Calendar (mcal) to Identify Trading Dates - CloudQuant Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Programmatically determine trading dates using the pandas_market_calendars library for NYSE, CME, CBOE, NASDAQ, and other exchanges.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cloudquantllc.mintlify.app/_mintlify/api/og/v2?division=Data+Science+Recipes\u0026amp;title=Using+Market+Calendar+%28mcal%29+to+Identify+Trading+Dates\u0026amp;description=Programmatically+determine+trading+dates+using+the+pandas_market_calendars+library+for+NYSE%2C+CME%2C+CBOE%2C+NASDAQ%2C+and+other+exchanges.\u0026amp;theme=65dd9fea027cd28919fcddca\u0026amp;signature=d6c3f6f75e912c36b7613e41b8515a01ec8d71fa918d067be9762ee48a85c45b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/cloudquantllc/YRpp6trsUU_PLt89/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CloudQuant Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0C63FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://knowledge.cloudquant.com/data-science-recipes/market-calendar\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/data-science-recipes/market-calendar.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://knowledge.cloudquant.com/#organization\",\"name\":\"CloudQuant Documentation\",\"url\":\"https://knowledge.cloudquant.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cloudquantllc/dUpJi8fJ5Zo-VYup/images/logo-light.png?fit=max\u0026auto=format\u0026n=dUpJi8fJ5Zo-VYup\u0026q=85\u0026s=fa052089c4ca22f87554674b2f2809f9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://knowledge.cloudquant.com#website\",\"name\":\"CloudQuant Documentation\",\"url\":\"https://knowledge.cloudquant.com\",\"publisher\":{\"@id\":\"https://knowledge.cloudquant.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://knowledge.cloudquant.com/data-science-recipes/market-calendar#webpage\",\"url\":\"https://knowledge.cloudquant.com/data-science-recipes/market-calendar\",\"name\":\"Using Market Calendar (mcal) to Identify Trading Dates\",\"description\":\"Programmatically determine trading dates using the pandas_market_calendars library for NYSE, CME, CBOE, NASDAQ, and other exchanges.\",\"dateModified\":\"2026-07-02T00:07:05.412Z\",\"isPartOf\":{\"@id\":\"https://knowledge.cloudquant.com#website\"},\"breadcrumb\":{\"@id\":\"https://knowledge.cloudquant.com/data-science-recipes/market-calendar#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://knowledge.cloudquant.com/data-science-recipes/market-calendar#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Data Science Recipes\",\"item\":\"https://knowledge.cloudquant.com/data-science-recipes/shortcuts-and-snippets\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Market Calendar (mcal) to Identify Trading Dates\",\"item\":\"https://knowledge.cloudquant.com/data-science-recipes/market-calendar\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://knowledge.cloudquant.com/data-science-recipes/market-calendar#article\",\"headline\":\"Using Market Calendar (mcal) to Identify Trading Dates\",\"name\":\"Using Market Calendar (mcal) to Identify Trading Dates\",\"description\":\"Programmatically determine trading dates using the pandas_market_calendars library for NYSE, CME, CBOE, NASDAQ, and other exchanges.\",\"url\":\"https://knowledge.cloudquant.com/data-science-recipes/market-calendar\",\"mainEntityOfPage\":{\"@id\":\"https://knowledge.cloudquant.com/data-science-recipes/market-calendar#webpage\"},\"dateModified\":\"2026-07-02T00:07:05.412Z\",\"publisher\":{\"@id\":\"https://knowledge.cloudquant.com/#organization\"},\"isPartOf\":{\"@id\":\"https://knowledge.cloudquant.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CloudQuant Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"CloudQuant Documentation","nav":{"global":{"anchors":[{"anchor":"Support","icon":"life-ring","href":"https://www.cloudquant.com/tickets"}]},"versions":[{"version":"2.6","default":true,"tag":"Latest","tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"CloudQuant Data Liberator Overview","href":"/overview"},{"title":"Security \u0026 Access","href":"/security-and-access"},{"title":"Network Configuration","href":"/network-configuration"}]},{"group":"What's New","pages":[{"title":"What's New","href":"/whats-new/overview"},{"title":"What's New in Liberator 2.6","href":"/whats-new/liberator-2.6"},{"title":"What's New in Liberator 2.5","href":"/whats-new/liberator-2.5"},{"title":"What's New in Liberator 2.4","href":"/whats-new/liberator-2.4"},{"title":"What's New in Liberator 2.3","href":"/whats-new/liberator-2.3"},{"title":"What's New in Liberator 2.2","href":"/whats-new/liberator-2.2"},{"title":"What's New in Liberator 2.1.1","href":"/whats-new/liberator-2.1.1"},{"title":"What's New in Liberator 2.1","href":"/whats-new/liberator-2.1"}]},{"group":"Administration","pages":[{"title":"Administration Overview","href":"/administration/overview"},{"title":"Managing Users \u0026 Entitlements","href":"/administration/managing-users-and-entitlements"},{"title":"Fine-Grained Permissions","href":"/administration/fine-grained-permissions"},{"title":"Dataset Visibility","href":"/administration/dataset-visibility"},{"title":"Cache Pre-Generation","href":"/administration/cache-pre-generation"},{"title":"Dataset Field Mapping","href":"/administration/dataset-field-mapping"},{"title":"Column Description Suggestions","href":"/administration/column-description-suggestions"},{"title":"AI-Driven Dataset Onboarding","href":"/administration/ai-dataset-onboarding"},{"title":"AI-Based Reporting","href":"/administration/ai-based-reporting"},{"title":"Admin Activity Audits","href":"/administration/admin-activity-audits"},{"title":"Query Usage Log","href":"/administration/usage-log"},{"title":"File Upload Management","href":"/administration/file-upload-management"}]},{"group":"CloudQuant Data Liberator Python Guide","pages":[{"title":"Getting Started with CloudQuant Data Liberator for Python","href":"/python-guide/getting-started"},{"title":"Pulling Data into a Pandas DataFrame","href":"/python-guide/pandas-dataframe"},{"title":"Considerations When Submitting a Query","href":"/python-guide/query-considerations"},{"title":"Required Timestamps in Queries","href":"/python-guide/required-timestamps"},{"title":"Symbols and Key Fields","href":"/python-guide/symbols-and-key-fields"},{"title":"Understanding as_of and back_to","href":"/python-guide/as-of-and-back-to"},{"title":"Usage of the as_of Parameter","href":"/python-guide/as-of-parameter"},{"title":"Usage of the back_to Parameter","href":"/python-guide/back-to-parameter"},{"title":"Query Parameter Combinations","href":"/python-guide/query-parameters"},{"title":"Selecting Specific Columns","href":"/python-guide/column-selection"},{"title":"Checking Dataset Access","href":"/python-guide/dataset-access"},{"title":"Batch Downloading Data","href":"/python-guide/batch-downloading"},{"title":"Accessing Data from a Live Trading Environment","href":"/python-guide/live-trading-environment"}]},{"group":"System Monitoring","pages":[{"title":"System Monitoring Overview","href":"/system-monitoring/overview"}]},{"group":"Data Science Recipes","pages":[{"title":"Python Data Science Shortcuts and Snippets","href":"/data-science-recipes/shortcuts-and-snippets"},{"title":"Extracting Parts of a Date or Time from a Timestamp","description":"Efficiently extract date and time components from timestamp strings in Python DataFrames using string slicing and pandas methods.","href":"/data-science-recipes/date-time-extraction"},{"title":"Using Market Calendar (mcal) to Identify Trading Dates","href":"/data-science-recipes/market-calendar"},{"title":"Summarizing Data with a Pivot Table","description":"Use pandas pivot tables to summarize, reorganize, and explore large market datasets by aggregating data into meaningful categories.","href":"/data-science-recipes/pivot-tables"},{"title":"Melt and Wide to Long - Unpivoting a Pivot","href":"/data-science-recipes/melt-and-unpivot"},{"title":"Aligning Two Datasets Into One","href":"/data-science-recipes/aligning-datasets"},{"title":"A Merge or Join","href":"/data-science-recipes/merge-and-join"},{"title":"SuperQuery","href":"/data-science-recipes/superquery"},{"title":"Downloading Very Large Datasets","href":"/data-science-recipes/large-datasets"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/concepts/queries-large-datasets"}]},{"tab":"Data Catalog","pages":[{"title":"Data Catalog","href":"/data-catalog/overview"}]},{"tab":"Supported Formats","icon":"table","pages":[{"title":"Supported Formats","href":"/datasource-config/supported-formats"}]},{"tab":"Integrations","icon":"puzzle-piece","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Connections","icon":"plug","pages":[{"title":"Connections","href":"/datasource-config/overview"}]}]},{"version":"2.5","tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"CloudQuant Data Liberator Overview","href":"/overview"},{"title":"Security \u0026 Access","href":"/security-and-access"},{"title":"Network Configuration","href":"/network-configuration"}]},{"group":"What's New","pages":[{"title":"What's New","href":"/whats-new/overview"},{"title":"What's New in Liberator 2.5","href":"/whats-new/liberator-2.5"},{"title":"What's New in Liberator 2.4","href":"/whats-new/liberator-2.4"},{"title":"What's New in Liberator 2.3","href":"/whats-new/liberator-2.3"},{"title":"What's New in Liberator 2.2","href":"/whats-new/liberator-2.2"},{"title":"What's New in Liberator 2.1.1","href":"/whats-new/liberator-2.1.1"},{"title":"What's New in Liberator 2.1","href":"/whats-new/liberator-2.1"}]},{"group":"Administration","pages":[{"title":"Administration Overview","href":"/administration/overview"},{"title":"Managing Users \u0026 Entitlements","href":"/administration/managing-users-and-entitlements"},{"title":"Fine-Grained Permissions","href":"/administration/fine-grained-permissions"},{"title":"Dataset Visibility","href":"/administration/dataset-visibility"},{"title":"Cache Pre-Generation","href":"/administration/cache-pre-generation"},{"title":"Dataset Field Mapping","href":"/administration/dataset-field-mapping"},{"title":"Column Description Suggestions","href":"/administration/column-description-suggestions"},{"title":"AI-Driven Dataset Onboarding","href":"/administration/ai-dataset-onboarding"},{"title":"AI-Based Reporting","href":"/administration/ai-based-reporting"},{"title":"Admin Activity Audits","href":"/administration/admin-activity-audits"},{"title":"Query Usage Log","href":"/administration/usage-log"},{"title":"File Upload Management","href":"/administration/file-upload-management"}]},{"group":"CloudQuant Data Liberator Python Guide","pages":[{"title":"Getting Started with CloudQuant Data Liberator for Python","href":"/python-guide/getting-started"},{"title":"Pulling Data into a Pandas DataFrame","href":"/python-guide/pandas-dataframe"},{"title":"Considerations When Submitting a Query","href":"/python-guide/query-considerations"},{"title":"Required Timestamps in Queries","href":"/python-guide/required-timestamps"},{"title":"Symbols and Key Fields","href":"/python-guide/symbols-and-key-fields"},{"title":"Understanding as_of and back_to","href":"/python-guide/as-of-and-back-to"},{"title":"Usage of the as_of Parameter","href":"/python-guide/as-of-parameter"},{"title":"Usage of the back_to Parameter","href":"/python-guide/back-to-parameter"},{"title":"Query Parameter Combinations","href":"/python-guide/query-parameters"},{"title":"Selecting Specific Columns","href":"/python-guide/column-selection"},{"title":"Checking Dataset Access","href":"/python-guide/dataset-access"},{"title":"Batch Downloading Data","href":"/python-guide/batch-downloading"},{"title":"Accessing Data from a Live Trading Environment","href":"/python-guide/live-trading-environment"}]},{"group":"System Monitoring","pages":[{"title":"System Monitoring Overview","href":"/system-monitoring/overview"}]},{"group":"Data Science Recipes","pages":[{"title":"Python Data Science Shortcuts and Snippets","href":"/data-science-recipes/shortcuts-and-snippets"},{"title":"Extracting Parts of a Date or Time from a Timestamp","description":"Efficiently extract date and time components from timestamp strings in Python DataFrames using string slicing and pandas methods.","href":"/data-science-recipes/date-time-extraction"},{"title":"Using Market Calendar (mcal) to Identify Trading Dates","href":"/data-science-recipes/market-calendar"},{"title":"Summarizing Data with a Pivot Table","description":"Use pandas pivot tables to summarize, reorganize, and explore large market datasets by aggregating data into meaningful categories.","href":"/data-science-recipes/pivot-tables"},{"title":"Melt and Wide to Long - Unpivoting a Pivot","href":"/data-science-recipes/melt-and-unpivot"},{"title":"Aligning Two Datasets Into One","href":"/data-science-recipes/aligning-datasets"},{"title":"A Merge or Join","href":"/data-science-recipes/merge-and-join"},{"title":"SuperQuery","href":"/data-science-recipes/superquery"},{"title":"Downloading Very Large Datasets","href":"/data-science-recipes/large-datasets"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/concepts/queries-large-datasets"}]},{"tab":"Data Catalog","pages":[{"title":"Data Catalog","href":"/data-catalog/overview"}]},{"tab":"Supported Formats","icon":"table","pages":[{"title":"Supported Formats","href":"/datasource-config/supported-formats"}]},{"tab":"Integrations","icon":"puzzle-piece","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Connections","icon":"plug","pages":[{"title":"Connections","href":"/datasource-config/overview"}]}]},{"version":"2.4","tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"CloudQuant Data Liberator Overview","href":"/overview"},{"title":"Security \u0026 Access","href":"/security-and-access"},{"title":"Network Configuration","href":"/network-configuration"}]},{"group":"What's New","pages":[{"title":"What's New","href":"/whats-new/overview"},{"title":"What's New in Liberator 2.4","href":"/whats-new/liberator-2.4"},{"title":"What's New in Liberator 2.3","href":"/whats-new/liberator-2.3"},{"title":"What's New in Liberator 2.2","href":"/whats-new/liberator-2.2"},{"title":"What's New in Liberator 2.1.1","href":"/whats-new/liberator-2.1.1"},{"title":"What's New in Liberator 2.1","href":"/whats-new/liberator-2.1"}]},{"group":"Administration","pages":[{"title":"Administration Overview","href":"/administration/overview"},{"title":"Managing Users \u0026 Entitlements","href":"/administration/managing-users-and-entitlements"},{"title":"Fine-Grained Permissions","href":"/administration/fine-grained-permissions"},{"title":"Dataset Visibility","href":"/administration/dataset-visibility"},{"title":"Cache Pre-Generation","href":"/administration/cache-pre-generation"},{"title":"Dataset Field Mapping","href":"/administration/dataset-field-mapping"},{"title":"Column Description Suggestions","href":"/administration/column-description-suggestions"},{"title":"AI-Driven Dataset Onboarding","href":"/administration/ai-dataset-onboarding"},{"title":"AI-Based Reporting","href":"/administration/ai-based-reporting"},{"title":"Query Usage Log","href":"/administration/usage-log"},{"title":"File Upload Management","href":"/administration/file-upload-management"}]},{"group":"CloudQuant Data Liberator Python Guide","pages":[{"title":"Getting Started with CloudQuant Data Liberator for Python","href":"/python-guide/getting-started"},{"title":"Pulling Data into a Pandas DataFrame","href":"/python-guide/pandas-dataframe"},{"title":"Considerations When Submitting a Query","href":"/python-guide/query-considerations"},{"title":"Required Timestamps in Queries","href":"/python-guide/required-timestamps"},{"title":"Symbols and Key Fields","href":"/python-guide/symbols-and-key-fields"},{"title":"Understanding as_of and back_to","href":"/python-guide/as-of-and-back-to"},{"title":"Usage of the as_of Parameter","href":"/python-guide/as-of-parameter"},{"title":"Usage of the back_to Parameter","href":"/python-guide/back-to-parameter"},{"title":"Query Parameter Combinations","href":"/python-guide/query-parameters"},{"title":"Selecting Specific Columns","href":"/python-guide/column-selection"},{"title":"Checking Dataset Access","href":"/python-guide/dataset-access"},{"title":"Batch Downloading Data","href":"/python-guide/batch-downloading"},{"title":"Accessing Data from a Live Trading Environment","href":"/python-guide/live-trading-environment"}]},{"group":"System Monitoring","pages":[{"title":"System Monitoring Overview","href":"/system-monitoring/overview"}]},{"group":"Data Science Recipes","pages":[{"title":"Python Data Science Shortcuts and Snippets","href":"/data-science-recipes/shortcuts-and-snippets"},{"title":"Extracting Parts of a Date or Time from a Timestamp","description":"Efficiently extract date and time components from timestamp strings in Python DataFrames using string slicing and pandas methods.","href":"/data-science-recipes/date-time-extraction"},{"title":"Using Market Calendar (mcal) to Identify Trading Dates","href":"/data-science-recipes/market-calendar"},{"title":"Summarizing Data with a Pivot Table","description":"Use pandas pivot tables to summarize, reorganize, and explore large market datasets by aggregating data into meaningful categories.","href":"/data-science-recipes/pivot-tables"},{"title":"Melt and Wide to Long - Unpivoting a Pivot","href":"/data-science-recipes/melt-and-unpivot"},{"title":"Aligning Two Datasets Into One","href":"/data-science-recipes/aligning-datasets"},{"title":"A Merge or Join","href":"/data-science-recipes/merge-and-join"},{"title":"SuperQuery","href":"/data-science-recipes/superquery"},{"title":"Downloading Very Large Datasets","href":"/data-science-recipes/large-datasets"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/concepts/queries-large-datasets"}]},{"tab":"Data Catalog","pages":[{"title":"Data Catalog","href":"/data-catalog/overview"}]},{"tab":"Supported Formats","icon":"table","pages":[{"title":"Supported Formats","href":"/datasource-config/supported-formats"}]},{"tab":"Integrations","icon":"puzzle-piece","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Connections","icon":"plug","pages":[{"title":"Connections","href":"/datasource-config/overview"}]}]},{"version":"2.3","tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"CloudQuant Data Liberator Overview","href":"/overview"},{"title":"Security \u0026 Access","href":"/security-and-access"},{"title":"Network Configuration","href":"/network-configuration"}]},{"group":"What's New","pages":[{"title":"What's New","href":"/whats-new/overview"},{"title":"What's New in Liberator 2.3","href":"/whats-new/liberator-2.3"},{"title":"What's New in Liberator 2.2","href":"/whats-new/liberator-2.2"},{"title":"What's New in Liberator 2.1.1","href":"/whats-new/liberator-2.1.1"},{"title":"What's New in Liberator 2.1","href":"/whats-new/liberator-2.1"}]},{"group":"Administration","pages":[{"title":"Administration Overview","href":"/administration/overview"},{"title":"Managing Users \u0026 Entitlements","href":"/administration/managing-users-and-entitlements"},{"title":"Fine-Grained Permissions","href":"/administration/fine-grained-permissions"},{"title":"Dataset Visibility","href":"/administration/dataset-visibility"},{"title":"Cache Pre-Generation","href":"/administration/cache-pre-generation"},{"title":"Dataset Field Mapping","href":"/administration/dataset-field-mapping"},{"title":"Column Description Suggestions","href":"/administration/column-description-suggestions"},{"title":"AI-Driven Dataset Onboarding","href":"/administration/ai-dataset-onboarding"},{"title":"AI-Based Reporting","href":"/administration/ai-based-reporting"},{"title":"File Upload Management","href":"/administration/file-upload-management"}]},{"group":"CloudQuant Data Liberator Python Guide","pages":[{"title":"Getting Started with CloudQuant Data Liberator for Python","href":"/python-guide/getting-started"},{"title":"Pulling Data into a Pandas DataFrame","href":"/python-guide/pandas-dataframe"},{"title":"Considerations When Submitting a Query","href":"/python-guide/query-considerations"},{"title":"Required Timestamps in Queries","href":"/python-guide/required-timestamps"},{"title":"Symbols and Key Fields","href":"/python-guide/symbols-and-key-fields"},{"title":"Understanding as_of and back_to","href":"/python-guide/as-of-and-back-to"},{"title":"Usage of the as_of Parameter","href":"/python-guide/as-of-parameter"},{"title":"Usage of the back_to Parameter","href":"/python-guide/back-to-parameter"},{"title":"Query Parameter Combinations","href":"/python-guide/query-parameters"},{"title":"Selecting Specific Columns","href":"/python-guide/column-selection"},{"title":"Checking Dataset Access","href":"/python-guide/dataset-access"},{"title":"Batch Downloading Data","href":"/python-guide/batch-downloading"},{"title":"Accessing Data from a Live Trading Environment","href":"/python-guide/live-trading-environment"}]},{"group":"System Monitoring","pages":[{"title":"System Monitoring Overview","href":"/system-monitoring/overview"}]},{"group":"Data Science Recipes","pages":[{"title":"Python Data Science Shortcuts and Snippets","href":"/data-science-recipes/shortcuts-and-snippets"},{"title":"Extracting Parts of a Date or Time from a Timestamp","description":"Efficiently extract date and time components from timestamp strings in Python DataFrames using string slicing and pandas methods.","href":"/data-science-recipes/date-time-extraction"},{"title":"Using Market Calendar (mcal) to Identify Trading Dates","href":"/data-science-recipes/market-calendar"},{"title":"Summarizing Data with a Pivot Table","description":"Use pandas pivot tables to summarize, reorganize, and explore large market datasets by aggregating data into meaningful categories.","href":"/data-science-recipes/pivot-tables"},{"title":"Melt and Wide to Long - Unpivoting a Pivot","href":"/data-science-recipes/melt-and-unpivot"},{"title":"Aligning Two Datasets Into One","href":"/data-science-recipes/aligning-datasets"},{"title":"A Merge or Join","href":"/data-science-recipes/merge-and-join"},{"title":"SuperQuery","href":"/data-science-recipes/superquery"},{"title":"Downloading Very Large Datasets","href":"/data-science-recipes/large-datasets"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/concepts/queries-large-datasets"}]},{"tab":"Data Catalog","pages":[{"title":"Data Catalog","href":"/data-catalog/overview"}]},{"tab":"Supported Formats","icon":"table","pages":[{"title":"Supported Formats","href":"/datasource-config/supported-formats"}]},{"tab":"Integrations","icon":"puzzle-piece","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Connections","icon":"plug","pages":[{"title":"Connections","href":"/datasource-config/overview"}]}]},{"version":"2.2","tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"CloudQuant Data Liberator Overview","href":"/overview"},{"title":"Security \u0026 Access","href":"/security-and-access"},{"title":"Network Configuration","href":"/network-configuration"}]},{"group":"What's New","pages":[{"title":"What's New","href":"/whats-new/overview"},{"title":"What's New in Liberator 2.2","href":"/whats-new/liberator-2.2"},{"title":"What's New in Liberator 2.1.1","href":"/whats-new/liberator-2.1.1"},{"title":"What's New in Liberator 2.1","href":"/whats-new/liberator-2.1"}]},{"group":"Administration","pages":[{"title":"Administration Overview","href":"/administration/overview"},{"title":"Managing Users \u0026 Entitlements","href":"/administration/managing-users-and-entitlements"},{"title":"Fine-Grained Permissions","href":"/administration/fine-grained-permissions"},{"title":"Dataset Visibility","href":"/administration/dataset-visibility"},{"title":"Cache Pre-Generation","href":"/administration/cache-pre-generation"},{"title":"Dataset Field Mapping","href":"/administration/dataset-field-mapping"},{"title":"Column Description Suggestions","href":"/administration/column-description-suggestions"},{"title":"File Upload Management","href":"/administration/file-upload-management"}]},{"group":"CloudQuant Data Liberator Python Guide","pages":[{"title":"Getting Started with CloudQuant Data Liberator for Python","href":"/python-guide/getting-started"},{"title":"Pulling Data into a Pandas DataFrame","href":"/python-guide/pandas-dataframe"},{"title":"Considerations When Submitting a Query","href":"/python-guide/query-considerations"},{"title":"Required Timestamps in Queries","href":"/python-guide/required-timestamps"},{"title":"Symbols and Key Fields","href":"/python-guide/symbols-and-key-fields"},{"title":"Understanding as_of and back_to","href":"/python-guide/as-of-and-back-to"},{"title":"Usage of the as_of Parameter","href":"/python-guide/as-of-parameter"},{"title":"Usage of the back_to Parameter","href":"/python-guide/back-to-parameter"},{"title":"Query Parameter Combinations","href":"/python-guide/query-parameters"},{"title":"Selecting Specific Columns","href":"/python-guide/column-selection"},{"title":"Checking Dataset Access","href":"/python-guide/dataset-access"},{"title":"Batch Downloading Data","href":"/python-guide/batch-downloading"},{"title":"Accessing Data from a Live Trading Environment","href":"/python-guide/live-trading-environment"}]},{"group":"System Monitoring","pages":[{"title":"System Monitoring Overview","href":"/system-monitoring/overview"}]},{"group":"Data Science Recipes","pages":[{"title":"Python Data Science Shortcuts and Snippets","href":"/data-science-recipes/shortcuts-and-snippets"},{"title":"Extracting Parts of a Date or Time from a Timestamp","description":"Efficiently extract date and time components from timestamp strings in Python DataFrames using string slicing and pandas methods.","href":"/data-science-recipes/date-time-extraction"},{"title":"Using Market Calendar (mcal) to Identify Trading Dates","href":"/data-science-recipes/market-calendar"},{"title":"Summarizing Data with a Pivot Table","description":"Use pandas pivot tables to summarize, reorganize, and explore large market datasets by aggregating data into meaningful categories.","href":"/data-science-recipes/pivot-tables"},{"title":"Melt and Wide to Long - Unpivoting a Pivot","href":"/data-science-recipes/melt-and-unpivot"},{"title":"Aligning Two Datasets Into One","href":"/data-science-recipes/aligning-datasets"},{"title":"A Merge or Join","href":"/data-science-recipes/merge-and-join"},{"title":"SuperQuery","href":"/data-science-recipes/superquery"},{"title":"Downloading Very Large Datasets","href":"/data-science-recipes/large-datasets"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/concepts/queries-large-datasets"}]},{"tab":"Data Catalog","pages":[{"title":"Data Catalog","href":"/data-catalog/overview"}]},{"tab":"Supported Formats","icon":"table","pages":[{"title":"Supported Formats","href":"/datasource-config/supported-formats"}]},{"tab":"Integrations","icon":"puzzle-piece","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Connections","icon":"plug","pages":[{"title":"Connections","href":"/datasource-config/overview"}]}]},{"version":"2.0","tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"CloudQuant Data Liberator Overview","href":"/overview"},{"title":"Security \u0026 Access","href":"/security-and-access"},{"title":"Network Configuration","href":"/network-configuration"}]},{"group":"Administration","pages":[{"title":"Administration Overview","href":"/administration/overview"},{"title":"Managing Users \u0026 Entitlements","href":"/administration/managing-users-and-entitlements"},{"title":"Fine-Grained Permissions","href":"/administration/fine-grained-permissions"}]},{"group":"CloudQuant Data Liberator Python Guide","pages":[{"title":"Getting Started with CloudQuant Data Liberator for Python","href":"/python-guide/getting-started"},{"title":"Pulling Data into a Pandas DataFrame","href":"/python-guide/pandas-dataframe"},{"title":"Considerations When Submitting a Query","href":"/python-guide/query-considerations"},{"title":"Required Timestamps in Queries","href":"/python-guide/required-timestamps"},{"title":"Symbols and Key Fields","href":"/python-guide/symbols-and-key-fields"},{"title":"Understanding as_of and back_to","href":"/python-guide/as-of-and-back-to"},{"title":"Usage of the as_of Parameter","href":"/python-guide/as-of-parameter"},{"title":"Usage of the back_to Parameter","href":"/python-guide/back-to-parameter"},{"title":"Query Parameter Combinations","href":"/python-guide/query-parameters"},{"title":"Selecting Specific Columns","href":"/python-guide/column-selection"},{"title":"Checking Dataset Access","href":"/python-guide/dataset-access"},{"title":"Batch Downloading Data","href":"/python-guide/batch-downloading"},{"title":"Accessing Data from a Live Trading Environment","href":"/python-guide/live-trading-environment"}]},{"group":"Data Science Recipes","pages":[{"title":"Python Data Science Shortcuts and Snippets","href":"/data-science-recipes/shortcuts-and-snippets"},{"title":"Extracting Parts of a Date or Time from a Timestamp","description":"Efficiently extract date and time components from timestamp strings in Python DataFrames using string slicing and pandas methods.","href":"/data-science-recipes/date-time-extraction"},{"title":"Using Market Calendar (mcal) to Identify Trading Dates","href":"/data-science-recipes/market-calendar"},{"title":"Summarizing Data with a Pivot Table","description":"Use pandas pivot tables to summarize, reorganize, and explore large market datasets by aggregating data into meaningful categories.","href":"/data-science-recipes/pivot-tables"},{"title":"Melt and Wide to Long - Unpivoting a Pivot","href":"/data-science-recipes/melt-and-unpivot"},{"title":"Aligning Two Datasets Into One","href":"/data-science-recipes/aligning-datasets"},{"title":"A Merge or Join","href":"/data-science-recipes/merge-and-join"},{"title":"SuperQuery","href":"/data-science-recipes/superquery"},{"title":"Downloading Very Large Datasets","href":"/data-science-recipes/large-datasets"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/concepts/queries-large-datasets"}]},{"tab":"Data Catalog","pages":[{"title":"Data Catalog","href":"/data-catalog/overview"}]},{"tab":"Supported Formats","icon":"table","pages":[{"title":"Supported Formats","href":"/datasource-config/supported-formats"}]},{"tab":"Connections","icon":"plug","pages":[{"title":"Connections","href":"/datasource-config/overview"}]}]}]},"basePath":"","title":"Using Market Calendar (mcal) to Identify Trading Dates - CloudQuant Documentation","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":[],"chunks":[]}