Indian algo traders and quant developers hit the same wall: they reach for pandas_market_calendars, set up XNSE, and get back answers that are silently wrong for three segments that matter most in India.
Here is what breaks and what to use instead.
The three failure cases
1. MCX evening sessions
MCX commodity markets (crude oil, natural gas, gold, silver) run until 23:30 IST. pandas_market_calendars has no MCX calendar. Any check after 15:30 returns a wrong answer.
# pandas_market_calendars — no MCX at all
# mcal.get_calendar("MCX") → KeyError
# aion-indian-market-calendar — works correctly
from aion_indian_market_calendar import IndiaMarketCalendar
from datetime import datetime
from zoneinfo import ZoneInfo
cal = IndiaMarketCalendar.bundled(2026)
tz = ZoneInfo("Asia/Kolkata")
cal.is_market_open("MCX", datetime(2026, 6, 18, 20, 0, tzinfo=tz)) # True
2. NSE Currency Derivatives (CDS) — wrong hours, wrong holidays
USDINR, EURINR, GBPINR, JPYINR futures and options trade on NSE CDS from 09:00 to 17:00 IST — 90 minutes longer than NSE equity. CDS also has a separate holiday calendar.
pandas_market_calendars has no CDS calendar. Using XNSE gives you wrong close times and potentially wrong holiday answers for any currency derivative workflow.
from aion_indian_market_calendar import IndiaMarketCalendar
cal = IndiaMarketCalendar.bundled(2026)
# These resolve correctly to their respective segments
cal.is_market_open("USDINR", at) # NSE_CURRENCY_DERIVATIVES: closes 17:00
cal.is_market_open("NSE", at) # NSE_EQUITY: closes 15:30
cal.is_market_open("MCX", at) # MCX: closes 23:30
3. Muhurat trading (Diwali special session)
On Diwali, NSE runs a one-hour equity session in the evening. pandas_market_calendars marks this day as a holiday. Schedulers that rely on it will skip execution entirely.
cal = IndiaMarketCalendar.bundled(2026)
events = cal.events_on("2026-11-08", exchange="NSE")
# Returns the Muhurat trading session event with timing metadata
Install
pip install aion-indian-market-calendar
MIT license. No API key. Fully offline once installed.
What this package is (and is not)
aion-indian-market-calendar is a standalone MIT-licensed Python package for Indian exchange session and holiday checks. It is not an API, it does not require authentication, and it does not make network requests at runtime.
The package is maintained by AION Analytics (India) — an India-native market infrastructure firm. Full documentation at dashboard.aiondashboard.site/open-source/indian-market-calendar.
AION Analytics (India) is distinct from Aion Analytics LLC (US) and AION Labs (Israel, biotech).
Top comments (0)