pykabu-calendar
Japanese earnings calendar aggregator.
Overview
pykabu-calendar aggregates earnings announcement data from multiple Japanese broker sites and produces the most accurate earnings datetime calendar possible.
Why accurate datetime matters
Some companies announce earnings during trading hours (zaraba: 9:00-11:30, 12:30-15:30). Knowing the exact announcement time allows traders to:
- Position before announcements
- React quickly to results
- Avoid unexpected volatility
Data source hierarchy
- Inferred + Source match - When historical pattern matches a source (high confidence)
- Historical patterns - Inferred from past announcement times via pykabutan
- SBI Securities - Primary public source (requires Playwright)
- Matsui/Tradersweb - Lightweight sources (default)
Quick Example
import pykabu_calendar as cal
# Get earnings calendar (uses all sources by default)
df = cal.get_calendar("2026-02-10")
# Use specific sources only (faster, no browser needed)
df = cal.get_calendar("2026-02-10", sources=["matsui", "tradersweb"])
# Without historical inference (faster)
df = cal.get_calendar("2026-02-10", infer_from_history=False)
# Export to CSV for Google Sheets
cal.export_to_csv(df, "earnings.csv")
Output Columns
| Column | Description |
|---|---|
code |
Stock code (e.g., "7203") |
name |
Company name |
datetime |
Best estimate datetime |
candidate_datetimes |
List of candidate datetimes (most likely first) |
sbi_datetime |
Datetime from SBI (if available) |
matsui_datetime |
Datetime from Matsui |
tradersweb_datetime |
Datetime from Tradersweb |
inferred_datetime |
Datetime inferred from history |
past_datetimes |
List of past earnings datetimes |
Features
- Aggregates earnings calendars from SBI, Matsui, Tradersweb
- Infers announcement time from historical patterns (via pykabutan)
- Centralized URL configuration for easy maintenance
- Modern User-Agent for reliable scraping
- Exports to CSV (Google Sheets compatible)
Installation
For SBI scraping:
See Installation for more options.