← 返回 Skills 市场
youpele52

Earnings and Financial Release Countdown

作者 youpele52 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
39
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install earnings-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...
使用说明 (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.
安全使用建议
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.
能力评估
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.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install earnings-countdown
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /earnings-countdown 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
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.
元数据
Slug earnings-countdown
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

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... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 39 次。

如何安装 Earnings and Financial Release Countdown?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install earnings-countdown」即可一键安装,无需额外配置。

Earnings and Financial Release Countdown 是免费的吗?

是的,Earnings and Financial Release Countdown 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Earnings and Financial Release Countdown 支持哪些平台?

Earnings and Financial Release Countdown 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Earnings and Financial Release Countdown?

由 youpele52(@youpele52)开发并维护,当前版本 v1.0.0。

💬 留言讨论