Calendar Reminder Paid

👤 thcjp 📦 v1.0.0 ⭐ 4.3 ⬇️ 163 下載
📈 商業運營 免費 🔑 需 API Key

📖 技能介紹


slug: calendar-reminder-paid name: calendar-reminder-paid version: "1.0.0" displayName: 日曆提醒工具專業版 summary: 企業級多日曆智慧提醒平臺,支援多日曆聚合、智慧排程、團隊同步、遞進提醒與日程分析。 license: Proprietary edition: pro description: |- 面向團隊與企業的多日曆智慧提醒與排程平臺。 核心能力: 多日曆聚合掃描、智慧提醒排程、遞進式提醒、團隊日程同步、衝突檢測、日程分析報表、多渠道通知。 適用場景: 團隊日程協調、高管助理提醒、跨時區會議安排、會議室資源排程、日程效率分析。 差異化: 專業版在免費版基礎上新增多日曆與智慧排程,相容免費版掃描指令碼與提醒格式。 tags: - 日曆提醒 - 多日曆聚合 - 智慧排程 - 團隊協作 - 日程分析 - 企業級 tools: - - read - exec


日曆提醒工具專業版

核心能力

能力 免費版 專業版
單日曆掃描 支援 支援
時段分類提醒 支援 支援
飛書通知 支援 支援
每晚定時掃描 支援 支援
多日曆聚合 - 支援
遞進式提醒 - 支援
日程衝突檢測 - 支援
跨時區支援 - 支援
團隊日程同步 - 支援
多渠道通知 - 支援
日程分析報表 - 支援
工作日/自定義過濾 - 支援
智慧排程最佳化 - 支援
### 單日曆掃描

執行單日曆掃描操作,處理使用者輸入並返回結果。

輸入: 使用者提供單日曆掃描所需的引數和指令。

輸出: 返回單日曆掃描的處理結果。

  • 執行單日曆掃描操作,處理輸入資料並返回結果
  • 驗證執行結果,確認輸出符合預期格式
  • 參考單日曆掃描相關配置引數進行設定

時段分類提醒

執行時段分類提醒操作,處理使用者輸入並返回結果。

輸入: 使用者提供時段分類提醒所需的引數和指令。

輸出: 返回時段分類提醒的處理結果。

  • 執行時段分類提醒操作,處理輸入資料並返回結果
  • 驗證執行結果,確認輸出符合預期格式
  • 參考時段分類提醒相關配置引數進行設定

飛書通知

執行飛書通知操作,處理使用者輸入並返回結果。

輸入: 使用者提供飛書通知所需的引數和指令。

輸出: 返回飛書通知的處理結果。

  • 執行飛書通知操作,處理輸入資料並返回結果
  • 驗證執行結果,確認輸出符合預期格式
  • 參考飛書通知相關配置引數進行設定

能力覆蓋範圍

本skill還覆蓋以下能力場景: 企業級多日曆智慧、提醒平臺、支援多日曆聚合、團隊同步、遞進提醒與日程分、面向團隊與企業的、多日曆智慧提醒與、排程平臺、核心能力、多日曆聚合掃描、智慧提醒排程、適用場景、團隊日程協調、高管助理提醒、跨時區會議安排、會議室資源排程、日程效率分析、差異化、專業版在免費版基、礎上新增多日曆與、相容免費版掃描腳、本與提醒格式。這些能力在上述核心功能中均有對應處理邏輯。

適用場景

場景一:多日曆聚合掃描

聚合工作日曆、個人日曆與團隊共享日曆,統一掃描並按優先順序排序提醒。

# calendar_reminder_pro.py
from datetime import datetime, timedelta
import json

# 多日曆配置
CALENDARS = [
    {"id": "work",     "source": "owa_calendar",  "priority": 1, "color": "🔵"},
    {"id": "personal", "source": "owa_calendar",  "priority": 2, "color": "🟢"},
    {"id": "team",     "source": "owa_calendar",  "priority": 1, "color": "🟡"},
]

# 掃描明日全部日曆
tomorrow = (datetime.now() + timedelta(days=1)).strftime("%Y-%m-%d")
all_events = []

for cal in CALENDARS:
    events = owa_calendar.get_events(
        calendar_id=cal["id"],
        start_date=tomorrow,
        end_date=tomorrow,
        timezone="Asia/Shanghai"
    )
    for evt in events:
        evt["calendar"] = cal["id"]
        evt["priority"] = cal["priority"]
        evt["color"] = cal["color"]
        all_events.append(evt)

# 按時間排序
all_events.sort(key=lambda x: x["start_time"])

# 按時段分組
morning = [e for e in all_events if e["start_hour"] < 12]
afternoon = [e for e in all_events if e["start_hour"] >= 12]

# 生成聚合彙報
report = generate_report(morning, afternoon)
send_feishu(target=ADMIN_OPEN_ID, message=report)

聚合彙報示例

📅 明日日程掃描完成(2026-07-19)

🔵 工作日曆 | 🟢 個人日曆 | 🟡 團隊日曆

上午日程(提前2小時遞進提醒):
🔵 09:00 專案週會 (會議室A) [高優先順序]
🟡 10:30 團隊站會 (線上)
🟢 11:30 健身預約 (健身房)

下午日程(12:00統一提醒):
🔵 14:00 技術方案評審 (會議室B) [高優先順序]
🔵 16:00 客戶電話 (線上)
🟢 19:00 家庭聚餐

共 6 項日程(3 工作 / 2 個人 / 1 團隊)
⚠️ 檢測到 1 個潛在衝突
✅ 已設定遞進提醒

場景二:遞進式提醒

高優先順序日程採用遞進式提醒,多個時間節點逐步升級提醒力度。

# 遞進提醒配置
PROGRESSIVE_REMINDERS = {
    "high": [
        {"offset_hours": 24, "message": "📋 明日有重要會議,請提前準備材料"},
        {"offset_hours": 2,  "message": "⏰ 重要會議 2 小時後開始"},
        {"offset_hours": 0.5, "message": "🚨 重要會議 30 分鐘後開始,請立即就位"},
    ],
    "medium": [
        {"offset_hours": 2, "message": "⏰ 會議 2 小時後開始"},
    ],
    "low": [
        {"offset_hours": 0.5, "message": "📅 會議 30 分鐘後開始"},
    ],
}

# 為每個日程生成遞進提醒
for event in all_events:
    priority = event.get("priority_level", "medium")
    for reminder in PROGRESSIVE_REMINDERS[priority]:
        reminder_time = event["start_time"] - timedelta(hours=reminder["offset_hours"])
        schedule_reminder(
            trigger_at=reminder_time,
            target=event["owner_open_id"],
            message=f'{event["color"]} {reminder["message"]}\n📅 {event["title"]}\n🕐 {event["time_range"]}'
        )

小蔥技能7w4.net有更新,你可以訪問看下。

場景三:日程衝突檢測與智慧排程

自動檢測時間重疊的日程,提供調整建議。

# conflict_detection.py
def detect_conflicts(events):
    """檢測日程衝突"""
    conflicts = []
    sorted_events = sorted(events, key=lambda x: x["start_time"])

    for i in range(len(sorted_events) - 1):
        curr = sorted_events[i]
        next_evt = sorted_events[i + 1]

        # 檢測時間重疊
        if curr["end_time"] > next_evt["start_time"]:
            overlap = (curr["end_time"] - next_evt["start_time"]).total_seconds() / 60
            conflicts.append({
                "event1": curr,
                "event2": next_evt,
                "overlap_minutes": overlap,
                "suggestion": suggest_resolution(curr, next_evt, overlap)
            })
    return conflicts

def suggest_resolution(e1, e2, overlap):
    """生成衝突解決建議"""
    suggestions = []
    if e1["priority"] > e2["priority"]:
        suggestions.append(f"建議將「{e2['title']}」推遲 {overlap:.0f} 分鐘")
    elif e2["priority"] > e1["priority"]:
        suggestions.append(f"建議將「{e1['title']}」提前結束或縮短")
    else:
        suggestions.append(f"兩場日程重疊 {overlap:.0f} 分鐘,建議協商調整")
        if e1.get("location") == e2.get("location"):
            suggestions.append("⚠️ 同一地點背靠背日程,注意轉場時間")
    return ";".join(suggestions)

# 執行衝突檢測
conflicts = detect_conflicts(all_events)
if conflicts:
    for c in conflicts:
        alert = (
            f"⚠️ 日程衝突告警\n"
            f"📅 衝突1: {c['event1']['title']} ({c['event1']['time_range']})\n"
            f"📅 衝突2: {c['event2']['title']} ({c['event2']['time_range']})\n"
            f"⏱️ 重疊: {c['overlap_minutes']:.0f} 分鐘\n"
            f"💡 建議: {c['suggestion']}"
        )
        send_feishu(target=ADMIN_OPEN_ID, message=alert)

場景四:日程效率分析報表

每週生成日程效率分析報表,幫助最佳化時間管理。

# weekly_analysis.py
import csv
from datetime import datetime, timedelta

# 獲取本週全部已完成日程
week_start = datetime.now() - timedelta(days=datetime.now().weekday())
week_events = owa_calendar.get_events(
    calendar_id="work",
    start_date=week_start.strftime("%Y-%m-%d"),
    end_date=datetime.now().strftime("%Y-%m-%d"),
    status="completed"
)

# 統計分析
analysis = {
    "total_meetings": len(week_events),
    "total_hours": sum(e["duration_hours"] for e in week_events),
    "by_type": {},
    "by_day": {},
    "conflict_count": 0,
    "avg_duration": 0,
}

for evt in week_events:
    # 按型別統計
    mtype = evt.get("category", "其他")
    analysis["by_type"][mtype] = analysis["by_type"].get(mtype, 0) + 1
    # 按日期統計
    day = evt["start_time"].strftime("%m-%d")
    analysis["by_day"][day] = analysis["by_day"].get(day, 0) + evt["duration_hours"]

analysis["avg_duration"] = analysis["total_hours"] / max(analysis["total_meetings"], 1)

# 生成報表
report = f"""📊 本週日程效率分析({week_start.strftime('%m-%d')} ~ {datetime.now().strftime('%m-%d')})

📈 總覽:
- 會議總數: {analysis['total_meetings']} 場
- 總時長: {analysis['total_hours']:.1f} 小時
- 平均時長: {analysis['avg_duration']:.1f} 小時
- 衝突次數: {analysis['conflict_count']} 次

📅 按日分佈:"""

for day, hours in sorted(analysis["by_day"].items()):
    bar = "█" * int(hours) + "░" * (8 - int(hours))
    report += f"\n  {day} {bar} {hours:.1f}h"

report += f"\n\n📋 按型別分佈:"
for mtype, count in sorted(analysis["by_type"].items(), key=lambda x: -x[1]):
    report += f"\n  {mtype}: {count} 場"

report += "\n\n💡 最佳化建議:"
if analysis["total_hours"] > 20:
    report += "\n  - 本週會議時長偏高,建議增加專注時間塊"
if analysis["avg_duration"] > 1.5:
    report += "\n  - 平均會議時長偏長,建議控制在 1 小時以內"
if analysis["conflict_count"] > 0:
    report += "\n  - 存在日程衝突,建議提前協調"

send_feishu(target=ADMIN_OPEN_ID, message=report)

# 匯出 CSV
with open("weekly_calendar_report.csv", "w", encoding="utf-8-sig", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["日期", "開始時間", "結束時間", "時長(小時)", "標題", "型別", "地點"])
    for evt in week_events:
        writer.writerow([
            evt["start_time"].strftime("%Y-%m-%d"),
            evt["start_time"].strftime("%H:%M"),
            evt["end_time"].strftime("%H:%M"),
            f"{evt['duration_hours']:.1f}",
            evt["title"],
            evt.get("category", ""),
            evt.get("location", "")
        ])

使用流程

  1. 安裝專業版依賴。
cd skills/calendar-reminder-tool-pro
pip install -r requirements.txt
  1. 配置多日曆源與通知渠道。
python3 setup_pro.py
  1. 註冊定時任務(相容免費版命令)。
skill-platform cron add \
  --name "calendar-daily-scan-pro" \
  --cron "0 22 * * *" \
  --tz "Asia/Shanghai" \
  --session main \
  --system-event "CALENDAR_SCAN: 請執行 python3 calendar_reminder_pro.py" \
  --description "專業版每晚22:00多日曆掃描與智慧提醒"
  1. 手動執行驗證。
python3 calendar_reminder_pro.py

命令引數說明

  • -reminder-tool-pro: 命令引數,用於指定操作選項
  • -daily-scan-pro: 命令引數,用於指定操作選項
  • --session: 命令引數,用於指定操作選項
  • --tz: 命令引數,用於指定操作選項
  • --system-event: 命令引數,用於指定操作選項

結果處理: 執行完成後,檢視輸出結果確認操作狀態。成功時輸出包含處理摘要和結果資料;失敗時根據錯誤資訊排查問題,參考錯誤處理章節獲取恢復步驟。

命令引數說明

  • -sig: 命令引數,用於指定操作選項

輸入格式

引數名 型別 必填 說明
content string 相關說明
content string 相關說明, 預設: 預設值
content string 相關說明, 可選值: json/text/markdown
style string 輸出風格, 參考 references/style.md

輸出格式

{
  "success": true,
  "data": {
    result: "相關說明",
    result: "相關說明",
    result: "相關說明",
    "metadata": {
      "template_used": "reviewer",
      "word_count": 0,
      "style": "專業"
    }
  },
  "error": null
}

輸出模板參考: assets/output.json

異常處理

錯誤場景 原因 處理方式
配置錯誤 引數缺失或格式錯誤 檢查依賴說明中的配置要求
執行時錯誤 執行環境不滿足 確認執行環境符合依賴說明
網路錯誤 連線超時或不可達 執行ping命令測試網路連通性,檢查防火牆和代理設定連線後執行ping命令測試網路連通性,檢查防火牆和代理設定連線後重新執行命令,參考國內替代方案

依賴說明

執行環境

  • Agent 平臺:支援 SKILL.md 的任意 AI Agent(Claude Code / Cursor / Codex / Gemini CLI 等)
  • 作業系統:Windows / macOS / Linux
  • 執行時:Python 3.9+(需要 zoneinfo 模組)
  • 定時排程:skill-platform cron 或系統 cron

依賴說明

依賴項 型別 是否必需 獲取方式
Python 3.9+ 執行時 必需 python.org 官方下載
owa-outlook skill skill 依賴 必需 提供 owa_calendar.py 日曆讀取模組
skill-platform CLI 命令列工具 必需 定時任務註冊與管理
飛書機器人 通訊渠道 必需 飛書開放平臺建立應用機器人
Telegram Bot 通訊渠道 可選 通過 @BotFather 建立(多渠道通知需要)
Outlook 賬號(多日曆) 日曆來源 必需 已配置的工作與個人郵箱
LLM API API 必需 由 Agent 內建 LLM 提供
資料庫 儲存 可選 團隊同步與歷史分析(可選,預設檔案儲存)

API Key 配置

  • 飛書機器人憑證配置在 skill-platform 通訊通道中。
  • Outlook 賬號憑證配置在 owa-outlook skill 中(支援多賬號)。
  • Telegram Bot Token 配置在通訊通道中(多渠道通知需要)。
  • 團隊同步需各成員授權日曆讀取許可權。
# 環境變數示例
export FEISHU_APP_ID="your_feishu_app_id"
export FEISHU_APP_SECRET="your_feishu_app_secret"
export OUTLOOK_WORK_EMAIL="work@company.com"
export OUTLOOK_PERSONAL_EMAIL="personal@outlook.com"
export TG_BOT_TOKEN="your_telegram_bot_token"

可用性分類

  • 分類:MD+EXEC(純 Markdown 指令,部分功能需要 exec 命令列執行能力)
  • 說明:基於 Markdown 的 AI Skill,通過自然語言指令驅動 Agent 執行任務。專業版在免費版基礎上新增多日曆聚合、遞進提醒與團隊同步,掃描指令碼與提醒格式向後相容免費版。

案例展示

專業版配置支援多日曆、遞進提醒與團隊同步。

{
  "calendars": [
    {"id": "work",     "source": "owa",     "priority": 1, "color": "🔵"},
    {"id": "personal", "source": "owa",     "priority": 2, "color": "🟢"},
    {"id": "team",     "source": "owa",     "priority": 1, "color": "🟡"}
  ],
  "reminder": {
    "mode": "progressive",
    "rules": {
      "high":   [{"offset_hours": 24}, {"offset_hours": 2}, {"offset_hours": 0.5}],
      "medium": [{"offset_hours": 2}],
      "low":    [{"offset_hours": 0.5}]
    },
    "morning_threshold": "12:00",
    "morning_advance_hours": 2,
    "afternoon_reminder_time": "12:00"
  },
  "conflict_detection": {
    "enabled": true,
    "buffer_minutes": 15,
    "auto_suggest": true
  },
  "timezone": "Asia/Shanghai",
  "filters": {
    "workdays_only": false,
    "skip_categories": ["已取消", "請假"]
  },
  "notifications": {
    "channels": ["feishu", "telegram"],
    "admin_open_id": "ou_詳情見說明詳情見說明xx"
  },
  "analysis": {
    "weekly_report": true,
    "report_day": 5,
    "export_format": "csv"
  },
  "team_sync": {
    "enabled": false,
    "team_members": []
  }
}

常見問題

Q1:專業版如何相容免費版?

專業版與免費版使用相同的掃描指令碼介面與提醒訊息格式。免費版的 cron 任務、飛書 open_id 配置可直接複用。升級後免費版的單日曆掃描自動作為專業版多日曆配置的一個條目。

Q2:多日曆聚合會重複提醒嗎?

不會。專業版對聚合後的日程去重(按標題+時間),同一日程只提醒一次。不同日曆中相同日程會合並顯示。

Q3:遞進式提醒會打擾嗎?

遞進提醒僅對高優先順序日程啟用。可在 reminder.rules 中自定義每個優先順序的提醒次數與時間點。低優先順序日程預設僅提醒一次。

Q4:衝突檢測如何判斷優先順序?

按日曆 priority 欄位判斷(數字越小優先順序越高)。同優先順序衝突時,系統建議協商調整並提示轉場時間。

Q5:支援哪些日曆來源?

專業版支援通過 owa-outlook 讀取 Outlook 日曆。可通過擴充套件 calendars[].source 配置接入其他日曆源(如 Google Calendar API)。

Q6:跨時區日程如何處理?

專業版在日程中標註原始時區,提醒時間按使用者本地時區(timezone 配置)轉換。跨時區會議會在提醒中顯示雙方時區時間。

Q7:團隊日程同步如何實現?

開啟 team_sync 後,系統讀取團隊成員的忙/閒狀態(不顯示具體內容,僅顯示時段是否佔用),輔助會議時間協調。需團隊成員授權日曆讀取許可權。

Q8:週報可以自動傳送嗎?

可以。配置 analysis.weekly_report: trueanalysis.report_day(1-7,週一到週日),系統在指定日期自動生成併發送週報到管理員。

錯誤處理

錯誤場景 原因 處理方式
LLM響應超時或無響應 網路延遲或模型負載過高 執行ping命令測試網路連通性,檢查防火牆和代理設定連線,執行ping命令測試網路連通性,檢查防火牆和代理設定連線後重新執行命令請求;確認Agent平臺LLM服務正常
輸入內容格式不正確 使用者輸入不符合skill預期格式 檢查輸入是否符合skill使用說明中的格式要求,參考示例章節
執行結果與預期不符 指令描述不夠明確或上下文不足 提供更詳細的指令描述,補充必要的上下文資訊
命令執行失敗 執行環境不滿足要求或許可權不足 確認執行環境符合依賴說明中的要求;檢查命令許可權設定

已知限制

-

🤖 AI 評測

這個日曆提醒工具功能豐富,支援多日曆管理和智慧提醒,但目前更像一份詳細的產品說明書而非可直接使用的工具。文件說明詳細、風險提示到位,但缺少實際可執行的程式碼檔案,核心功能依賴其他未提供的元件。對於需要完整解決方案的使用者,建議等待功能更完善的版本。

📊 多維度評分

適應性3.9
規範性4.4
有效性4.5
可靠性4
可信度4.8

📁 包含檔案 (3 個)

📄 SKILL.md 19.3 KB
📄 _meta.json 141 B
📄 skill-card.md 2.5 KB