baggat236/economic-calendar-fetcher
Fetch upcoming economic events and data releases using FMP API. Retrieve scheduled central bank decisions, employment reports, inflation data, GDP releases, and other market-moving economic indicators for specified date ranges (default: next 7 days). The script outputs raw JSON or text; the assistant filters, assesses impact, and generates the Markdown report.
npx skills add https://github.com/BaggaT236/AI-Trading-Skills --skill economic-calendar-fetcher
Retrieve upcoming economic events and data releases from the Financial Modeling Prep (FMP) Economic Calendar API. This skill fetches scheduled economic indicators including central bank monetary policy decisions, employment reports, inflation data (CPI/PPI), GDP releases, retail sales, manufacturing data, and other market-moving events that impact financial markets.
The skill uses a Python script to query the FMP API and returns raw JSON or text output. The assistant then filters events, assesses market impact, and generates a chronological Markdown report for each scheduled event. No files are generated automatically.
Key Capabilities:
Data Source:
https://financialmodelingprep.com/api/v3/economic_calendarUse this skill when the user requests:
DO NOT use this skill for:
FMP_API_KEY environment variable or pass --api-key to the script.skills/economic-calendar-fetcher/scripts/get_economic_calendar.py.Follow these steps to fetch and analyze the economic calendar:
Check for API key availability (in priority order):
FMP_API_KEY environment variable is set — this keeps the key out of session logs--api-key CLI argument for one-off runsExample user interaction:
User: "Show me economic events for next week"
Assistant: "I'll fetch the economic calendar. I'll use the FMP_API_KEY environment variable if it's set. Otherwise, please pass the key via --api-key when running the script."
Set appropriate date range based on user request:
Default (no specific dates): Today + 7 days
User specifies period: Use exact dates (validate format: YYYY-MM-DD)
Maximum range: 90 days (FMP API limitation)
Examples:
Validate date range:
Run the get_economic_calendar.py script with appropriate parameters:
Basic usage (default 7 days):
python3 skills/economic-calendar-fetcher/scripts/get_economic_calendar.py --api-key YOUR_KEY
With specific date range:
python3 skills/economic-calendar-fetcher/scripts/get_economic_calendar.py \
--from 2025-01-01 \
--to 2025-01-31 \
--api-key YOUR_KEY \
--format json
Using environment variable (no --api-key needed):
export FMP_API_KEY=your_key_here
python3 skills/economic-calendar-fetcher/scripts/get_economic_calendar.py \
--from 2025-01-01 \
--to 2025-01-07
Script parameters:
--from: Start date (YYYY-MM-DD) - default: today--to: End date (YYYY-MM-DD) - default: today + 7 days--api-key: FMP API key (optional if FMP_API_KEY env var set)--format: Output format (json or text) - default: json--output: Output file path (optional, default: stdout)Handle errors and empty results:
date because FMP may return adjacent-date rows. This applies even when the helper script itself returned [] (not only when a stable endpoint was used).Direct v3 fallback probe:
python3 - <<'PY'
import os, json, urllib.parse, urllib.request, datetime
start = datetime.date.fromisoformat("YYYY-MM-DD")
end = datetime.date.fromisoformat("YYYY-MM-DD")
url = "https://financialmodelingprep.com/api/v3/economic_calendar?" + urllib.parse.urlencode({
"from": start.isoformat(), "to": end.isoformat(), "apikey": os.environ["FMP_API_KEY"]
})
with urllib.request.urlopen(url, timeout=30) as r:
data = json.loads(r.read())
filtered = [e for e in data if start <= datetime.date.fromisoformat(e["date"][:10]) <= end]
filtered.sort(key=lambda e: e.get("date", ""))
print(json.dumps(filtered, indent=2))
PY
Process the JSON response from the script:
Filter examples:
Event data structure:
{
"date": "2025-01-15 14:30:00",
"country": "US",
"event": "Consumer Price Index (CPI) YoY",
"currency": "USD",
"previous": 2.6,
"estimate": 2.7,
"actual": null,
"change": null,
"impact": "High",
"changePercentage": null
}
Evaluate the market significance of each event:
Impact Level Classification (from FMP):
Additional Context Factors:
> Responsibility: The script outputs raw JSON or text. This step is performed by the assistant using the script's output. No Markdown files are generated automatically; results are displayed in chat and can be saved to reports/ on request.
Create structured markdown report with the following sections:
Report Header:
# Economic Calendar
**Period:** [Start Date] to [End Date]
**Report Generated:** [Timestamp]
**Total Events:** [Count]
**High Impact Events:** [Count]
Event Listing (Chronological):
For each event, provide:
## [Date] - [Day of Week]
### [Event Name] ([Impact Level])
- **Country:** [Country Code] ([Currency])
- **Time:** [HH:MM UTC]
- **Previous:** [Value]
- **Estimate:** [Consensus Forecast]
- **Impact Assessment:** [Your analysis]
**Market Implications:**
[2-3 sentences on why this matters, what markets watch for, typical reaction patterns]
---
Example Event Entry:
## 2025-01-15 - Wednesday
### Consumer Price Index (CPI) YoY (High Impact)
- **Country:** US (USD)
- **Time:** 14:30 UTC (8:30 AM ET)
- **Previous:** 2.6%
- **Estimate:** 2.7%
- **Impact Assessment:** Very High - Core inflation metric for Fed policy decisions
**Market Implications:**
CPI reading above estimate (>2.7%) likely strengthens hawkish Fed expectations, potentially pressuring equities and supporting USD. Reading at or below 2.7% could reinforce disinflation narrative and support risk assets. Options market pricing 1.2% S&P 500 move on release day.
---
Summary Section:
Add analytical summary at the end:
## Key Takeaways
**Highest Impact Days:**
- [Date]: [Events] - [Combined impact rationale]
- [Date]: [Events] - [Combined impact rationale]
**Central Bank Activity:**
- [Summary of any scheduled Fed/ECB/BOJ meetings or speeches]
**Major Data Releases:**
- Employment: [NFP, Unemployment Rate dates]
- Inflation: [CPI, PPI dates]
- Growth: [GDP, Retail Sales dates]
**Market Positioning Considerations:**
[2-3 bullets on how traders might position around these events]
**Risk Events:**
[Highlight any particularly high-uncertainty or surprise-potential events]
Filtering Notes:
If user requested specific filters, note at top:
**Filters Applied:**
- Impact Level: High only
- Country: US
- Events shown: [X] of [Y] total events in date range
Output:
--output reports/economic_calendar_[START]_to_[END].json when running the script.reports/ after generating it in chat.Markdown structure requirements:
Table format option (for dense listings):
| Date/Time (UTC) | Event | Country | Impact | Previous | Estimate | Assessment |
|-----------------|-------|---------|--------|----------|----------|------------|
| 01-15 14:30 | CPI YoY | US | High | 2.6% | 2.7% | Core inflation metric |
Language: All reports in English
Python Script:
skills/economic-calendar-fetcher/scripts/get_economic_calendar.py: Main API fetch script with CLI interfaceReference Documentation:
references/fmp_api_documentation.md: Complete FMP Economic Calendar API referenceAPI Details:
https://financialmodelingprep.com/api/v3/economic_calendarhttps://financialmodelingprep.com/stable/economics-calendar and it returns 404 or [] for an otherwise valid date range, fall back to the v3 endpoint above before declaring the calendar empty.from/to window; after fetching, filter events locally by parsed date so only the requested date range is reported.Event Coverage:
Usage Tips:
Error Handling:
404 or an empty list for a valid range: retry the same range through https://financialmodelingprep.com/api/v3/economic_calendar, then locally filter returned events to the requested dates before reporting.Take baggat236/economic-calendar-fetcher from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.