sports-news
Sports News
Before writing queries, consult references/api-reference.md for command parameters and references/rss-feeds.md for curated feed URLs.
Quick Start
Prefer the CLI — it avoids Python import path issues:
sports-skills news fetch_items --google_news --query="Arsenal transfer" --limit=5
sports-skills news fetch_feed --url="https://feeds.bbci.co.uk/sport/football/rss.xml"
Python SDK (alternative):
from sports_skills import news
articles = news.fetch_items(google_news=True, query="Arsenal transfer news", limit=10)
feed = news.fetch_feed(url="https://feeds.bbci.co.uk/sport/football/rss.xml")
CRITICAL: Before Any Query
CRITICAL: Before calling any news command, verify:
- Dates are derived from the system prompt's
currentDate— never hardcoded. google_news=Trueis always paired with aqueryparameter.sort_by_date=Trueis set for any "recent" or "latest" query.
Choosing Dates
Derive the current date from the system prompt's date (e.g., currentDate: 2026-02-16 means today is 2026-02-16).
- "this week":
after = today - 7 days - "recent" or "latest":
after = today - 3 days - Specific date range: use as-is
Commands
| Command | Required | Optional | Description |
|---|---|---|---|
fetch_feed |
url | Fetch an RSS/Atom feed by URL | |
fetch_items |
google_news, query, url, limit, after, before, sort_by_date | Fetch news from Google News or an RSS feed |
Workflows
Breaking News Check
fetch_items --google_news --query="<topic>" --limit=5 --sort_by_date=True- Present headlines with source and date.
Topic Deep-Dive
fetch_items --google_news --query="<topic>" --after=<7_days_ago> --sort_by_date=True --limit=10- For curated sources, also try
fetch_feed --url="<rss_url>". - Cross-reference both for comprehensive coverage.
Weekly Sports Roundup
- For each sport of interest,
fetch_items --google_news --query="<sport> results" --after=<7_days_ago> --limit=5. - Aggregate and present by sport.
Examples
Example 1: Transfer news search User says: "What's the latest Arsenal transfer news?" Actions:
- Derive
afterfromcurrentDate: today minus 3 days - Call
fetch_items(google_news=True, query="Arsenal transfer news", after=<derived_date>, sort_by_date=True, limit=10)Result: Recent Arsenal transfer headlines with source, date, and links
Example 2: Curated RSS feed User says: "Show me BBC Sport football headlines" Actions:
- Call
fetch_feed(url="https://feeds.bbci.co.uk/sport/football/rss.xml")Result: BBC Sport football feed title, last updated, and recent articles
Example 3: Date-filtered news User says: "Any Champions League news from this week?" Actions:
- Derive
afterfromcurrentDate: today minus 7 days - Call
fetch_items(google_news=True, query="Champions League", after=<derived_date>, sort_by_date=True, limit=10)Result: Champions League articles from the last 7 days, sorted newest first
Commands that DO NOT exist — never call these
— does not exist. Useget_newsfetch_feed(for RSS) orfetch_items(for Google News search).— does not exist. Usesearch_newsfetch_itemswithgoogle_news=Trueand aqueryparameter.— does not exist. Useget_headlinesfetch_itemswithgoogle_news=True.
If a command is not listed in the Commands table above, it does not exist.
Troubleshooting
Error: Google News returns empty results
Cause: query is missing or too narrow, or google_news=True is not set
Solution: Ensure google_news=True AND a query are both set. Try broader keywords (e.g., "Arsenal" instead of "Arsenal vs Chelsea goal")
Error: RSS feed returns an error
Cause: The feed URL may be temporarily down or the URL format has changed
Solution: Use Google News (fetch_items with google_news=True) as a fallback for the same topic
Error: Articles returned are old despite using "recent" query
Cause: sort_by_date=True is not set, or the after date filter is missing
Solution: Add sort_by_date=True and after=<today - 3 days> to ensure newest articles appear first