← Back to Skills Marketplace
youpele52

Earnings and Financial Release Countdown

by youpele52 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
39
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install earnings-countdown
Description
Set up a daily earnings countdown reminder for a stock. Resolves company name to ticker, fetches the next earnings date, and creates a daily cron reminder vi...
README (SKILL.md)

Skill: Earnings Countdown

When to use

  • User wants a daily reminder leading up to a company's next earnings release.
  • User says "notify me 1 week before NVIDIA earnings every day at 10 AM".
  • User says "set up an earnings countdown for Apple".
  • User says "remind me daily before Tesla's financial release".
  • User wants to track an upcoming earnings event with daily price + fundamentals updates.

When NOT to use

  • User just wants the current stock price → use stock-price-checker-pro
  • User just wants fundamentals → use stock-fundamentals
  • User wants a generic reminder (not earnings-related) → use remind-me
  • User wants a full research report right now → use equity-research
  • User wants to check the earnings date without scheduling → use stock-price-checker-pro

Overview

This skill orchestrates three sub-skills to create a proactive earnings countdown:

  1. Resolve company name → ticker (LLM agent maps it, same approach as stock-price-checker-pro)
  2. Fetch the next earnings date via the local Python script
  3. Create a daily cron reminder via remind-me that fires every day at the specified time, running stock-price-checker-pro + stock-fundamentals and delivering a countdown briefing

Conversation Flow

Step 1 — Resolve the company name to a ticker

Map the user's company name to its ticker symbol. Use the same approach as stock-price-checker-pro: the LLM agent resolves common company names to their Yahoo Finance tickers.

Company Ticker
NVIDIA NVDA
Apple AAPL
Tesla TSLA
Microsoft MSFT
Amazon AMZN
Google / Alphabet GOOGL
Meta / Facebook META
Rheinmetall RHM.DE
SAP SAP.DE
ASML ASML.AS
Shell SHEL.L

If unsure, ask: "Just to confirm — that's the ticker \x3CTICKER>, right?"

Step 2 — Collect lead time and notification time

Ask the user two questions. Apply defaults if they do not specify.

Question Default Options
How many weeks before earnings? 1 week (7 days) 1 or 2 weeks
At what time? (with timezone) 10 AM CET (Europe/Paris) Any time in any timezone

Examples of user input and how to parse it:

  • "1 week, 9 AM New York time" → lead_days=7, hour=9, minute=0, tz=America/New_York
  • "2 weeks, 8 AM London" → lead_days=14, hour=8, minute=0, tz=Europe/London
  • "just use defaults" → lead_days=7, hour=10, minute=0, tz=Europe/Paris
  • (no lead time or time given) → apply defaults, confirm with user

Always confirm before proceeding. Summarise:

Got it! Here's what I'll set up: 📊 Company: NVIDIA (NVDA) 📅 Lead time: 1 week before earnings ⏰ Time: 10:00 AM CET (Europe/Paris) 🔔 Delivery: Daily countdown briefing to this chat

Shall I go ahead?

Step 3 — Fetch the next earnings date

uv run /root/.openclaw/workspace/skills/earnings-countdown/src/main.py \x3CTICKER>

The command outputs:

Ticker: NVDA
Company: NVIDIA Corporation
Next Earnings Date: 2026-06-15

If the output contains Error:, report the error to the user and stop.

Step 4 — Compute the reminder schedule

From the script output, compute:

  • reminder_start_date = Next Earnings Datelead_days (7 or 14)
  • cron_expression = cron:\x3Cminute> \x3Chour> * * * (daily at the specified time in the user's timezone)
    • e.g. 10 AM → cron:0 10 * * *
    • e.g. 9:30 AM → cron:30 9 * * *

⚠️ If reminder_start_date is today or in the past, start the daily reminders today (the cron will fire at the next occurrence of the specified time). Mention this to the user:

The earnings date is close — reminders will start today at 10 AM CET.

⚠️ If reminder_start_date is after the earnings date (earnings are very soon), tell the user:

The earnings date is less than your chosen lead time away. Daily reminders may not be useful. Do you still want to proceed?

⚠️ If the earnings date is today, say:

Earnings are today! Would you like me to run a full briefing now instead of scheduling a reminder?

Step 5 — Create the daily cron reminder via remind-me

The cron message must contain clear instructions for the agent that fires it each day. The message tells the agent to:

  1. Check if today is on or after the earnings date
  2. If so: send a final "Earnings day!" message, run stock-price-checker-pro + stock-fundamentals, and cancel this reminder
  3. If not: compute days remaining, run stock-price-checker-pro + stock-fundamentals, and send a countdown briefing

Use the remind-me create command:

uv run /root/.openclaw/workspace/skills/remind-me/src/main.py create \
  "\x3CTICKER> Earnings Countdown - Daily \x3CHH:MM>" \
  "📊 \x3CTICKER> (\x3CCOMPANY>) Earnings Countdown. Next earnings date: \x3CEARNINGS_DATE_ISO>.\
\
If today is on or after \x3CEARNINGS_DATE_ISO>:\
1. Say '🔔 \x3CCOMPANY> (\x3CTICKER>) earnings are TODAY! 🎯'\
2. Run: uv run /root/.openclaw/workspace/skills/stock-price-checker-pro/src/main.py \x3CTICKER>\
3. Run: uv run /root/.openclaw/workspace/skills/stock-fundamentals/src/main.py \x3CTICKER>\
4. Send a comprehensive earnings-day briefing with price, fundamentals, and a quick take.\
5. Cancel this reminder by running: uv run /root/.openclaw/workspace/skills/remind-me/src/main.py cancel name '\x3CTICKER> Earnings Countdown - Daily \x3CHH:MM>'\
\
If today is before \x3CEARNINGS_DATE_ISO>:\
1. Compute days_remaining = days between today and \x3CEARNINGS_DATE_ISO>\
2. Say '🔔 \x3CCOMPANY> (\x3CTICKER>) earnings in {days_remaining} days — briefing below.'\
3. Run: uv run /root/.openclaw/workspace/skills/stock-price-checker-pro/src/main.py \x3CTICKER>\
4. Run: uv run /root/.openclaw/workspace/skills/stock-fundamentals/src/main.py \x3CTICKER>\
5. Send a daily countdown briefing summarizing price, key fundamentals, and recent company news." \
  "cron:\x3CMINUTE> \x3CHOUR> * * *" \
  "\x3Cchannel>" \
  "\x3CchatId>" \
  "tz:\x3CIANA timezone>"

⚠️ Critical: Channel, chatId, and timezone resolution follow the same rules as remind-me (see its SKILL.md). Auto-detect from session context. The timezone passed here (tz:\x3CIANA>) must match the one resolved in Step 2.

Step 6 — Confirm completion

After the cron is created, report back:

✅ Done! Your earnings countdown is set up: 📊 \x3CTICKER> (\x3CCOMPANY>) 📅 Earnings date: \x3CEARNINGS_DATE_ISO> ⏰ Daily briefing at: \x3CHH:MM> \x3CTIMEZONE_LABEL> 🔁 Starting: \x3CREMINDER_START_DATE_ISO> (\x3CDAYS_UNTIL_START> days from now) 📱 Delivered to: This chat


Commands

Fetch the next earnings date

uv run /root/.openclaw/workspace/skills/earnings-countdown/src/main.py \x3CTICKER>

Examples

# US stocks
uv run /root/.openclaw/workspace/skills/earnings-countdown/src/main.py NVDA
uv run /root/.openclaw/workspace/skills/earnings-countdown/src/main.py AAPL
uv run /root/.openclaw/workspace/skills/earnings-countdown/src/main.py TSLA

# European stocks
uv run /root/.openclaw/workspace/skills/earnings-countdown/src/main.py RHM.DE
uv run /root/.openclaw/workspace/skills/earnings-countdown/src/main.py SAP.DE
uv run /root/.openclaw/workspace/skills/earnings-countdown/src/main.py ASML.AS

Output

The script returns three lines:

Ticker: \x3CSYMBOL>
Company: \x3CCOMPANY_NAME>
Next Earnings Date: \x3CYYYY-MM-DD>

Or an error:

Error: \x3Cmessage>

Full Walkthrough

Example — NVIDIA with 1 week lead time, 10 AM CET (all defaults)

User: "Set up an earnings countdown for NVIDIA"

  1. Resolve ticker: NVIDIA → NVDA
  2. Apply defaults: 1 week, 10 AM CET → lead_days=7, hour=10, minute=0, tz=Europe/Paris
  3. Confirm with user (include timezone line), user says yes
  4. Run script:
uv run /root/.openclaw/workspace/skills/earnings-countdown/src/main.py NVDA

Output:

Ticker: NVDA
Company: NVIDIA Corporation
Next Earnings Date: 2026-06-15
  1. Compute schedule:

    • earnings_date = 2026-06-15
    • reminder_start = 2026-06-08 (7 days before)
    • cron = cron:0 10 * * *
    • days_until_start = compute from today
  2. Create cron:

uv run /root/.openclaw/workspace/skills/remind-me/src/main.py create \
  "NVDA Earnings Countdown - Daily 10:00" \
  "📊 NVDA (NVIDIA Corporation) Earnings Countdown. Next earnings date: 2026-06-15.\
\
If today is on or after 2026-06-15:\
1. Say '🔔 NVIDIA Corporation (NVDA) earnings are TODAY! 🎯'\
2. Run: uv run /root/.openclaw/workspace/skills/stock-price-checker-pro/src/main.py NVDA\
3. Run: uv run /root/.openclaw/workspace/skills/stock-fundamentals/src/main.py NVDA\
4. Send a comprehensive earnings-day briefing with price, fundamentals, and a quick take.\
5. Cancel this reminder by running: uv run /root/.openclaw/workspace/skills/remind-me/src/main.py cancel name 'NVDA Earnings Countdown - Daily 10:00'\
\
If today is before 2026-06-15:\
1. Compute days_remaining = days between today and 2026-06-15\
2. Say '🔔 NVIDIA Corporation (NVDA) earnings in {days_remaining} days — briefing below.'\
3. Run: uv run /root/.openclaw/workspace/skills/stock-price-checker-pro/src/main.py NVDA\
4. Run: uv run /root/.openclaw/workspace/skills/stock-fundamentals/src/main.py NVDA\
5. Send a daily countdown briefing summarizing price, key fundamentals, and recent company news." \
  "cron:0 10 * * *" \
  "telegram" \
  "\x3CchatId>" \
  "tz:Europe/Paris"
  1. Confirm completion.

Example — Apple with 2 weeks lead time, 9 AM New York time

User: "Notify me 2 weeks before Apple earnings every day at 9 AM New York time"

  1. Resolve ticker: Apple → AAPL
  2. Parse: lead_days=14, hour=9, minute=0, tz=America/New_York
  3. Confirm, user says yes
  4. Run script:
uv run /root/.openclaw/workspace/skills/earnings-countdown/src/main.py AAPL
  1. Compute: cron = cron:0 9 * * *, tz=America/New_York
  2. Create cron (same pattern as above, with AAPL details and America/New_York timezone)
  3. Confirm completion.

Ticker Format Reference

Market Format Example
US stocks Plain AAPL, NVDA
German stocks .DE suffix RHM.DE, SAP.DE
UK stocks .L suffix SHEL.L, BP.L
Dutch stocks .AS suffix ASML.AS
Japanese .T suffix 7203.T
Korean .KS suffix 005930.KS

Notes

  • uv run reads the inline # /// script dependency block in main.py and auto-installs yfinance in an isolated environment — no pip install or venv setup needed.
  • Company name → ticker resolution is done by the LLM agent, following the same pattern as stock-price-checker-pro.
  • Channel, chatId, and timezone are always auto-detected from session context — never ask the user for these.
  • Timezone resolution follows remind-me's 3-tier system (message → USER.md → ask user).
  • The daily cron message tells the agent to run stock-price-checker-pro and stock-fundamentals and synthesize a briefing.
  • The cron auto-cancels on earnings day after delivering the final briefing.
  • If no earnings date is found, the skill reports the error and stops — no cron is created.
  • Do NOT use the shell wrapper pattern — call uv run src/main.py directly as shown above.
  • Do NOT use web search or curl to fetch earnings dates — always use this script.
Usage Guidance
Before installing, confirm the ticker, timezone, delivery chat, and daily reminder time. Be aware this creates a recurring reminder that runs other finance skills until earnings day, so cancel it if the schedule or destination is wrong.
Capability Assessment
Purpose & Capability
The stated purpose is to resolve a ticker, fetch the next earnings date using yfinance/Yahoo Finance data, and create daily reminder briefings; the Python code only performs the earnings-date lookup and formatting.
Instruction Scope
The skill instructs the agent to confirm the ticker, lead time, timezone, and delivery to the current chat before proceeding, but it also says channel/chatId are auto-detected and never asks the user for those raw routing values.
Install Mechanism
The package declares only uv and openclaw as required binaries, with an inline uv dependency on yfinance; no suspicious install script, hidden downloader, or unrelated package behavior was found.
Credentials
Network access to Yahoo Finance via yfinance and orchestration of stock-price/fundamentals reminder skills are expected for the financial countdown purpose.
Persistence & Privilege
The skill creates a daily cron reminder that persists until earnings day and includes an auto-cancel instruction; this is purpose-aligned but users should verify the schedule because the example command does not clearly encode the computed reminder start date.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install earnings-countdown
  3. After installation, invoke the skill by name or use /earnings-countdown
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Earnings Countdown skill v1.0.0 – initial release - Set up daily reminders for upcoming earnings releases, including countdown briefings. - Resolves company name to ticker, fetches next earnings date, and auto-creates cron reminders. - Integrates with `stock-price-checker-pro`, `stock-fundamentals`, and `remind-me`. - Customizable lead time and notification time; supports multiple timezones. - Sends daily updates with price, fundamentals, and countdown until earnings day.
Metadata
Slug earnings-countdown
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Earnings and Financial Release Countdown?

Set up a daily earnings countdown reminder for a stock. Resolves company name to ticker, fetches the next earnings date, and creates a daily cron reminder vi... It is an AI Agent Skill for Claude Code / OpenClaw, with 39 downloads so far.

How do I install Earnings and Financial Release Countdown?

Run "/install earnings-countdown" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Earnings and Financial Release Countdown free?

Yes, Earnings and Financial Release Countdown is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Earnings and Financial Release Countdown support?

Earnings and Financial Release Countdown is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Earnings and Financial Release Countdown?

It is built and maintained by youpele52 (@youpele52); the current version is v1.0.0.

💬 Comments