日历提醒工具专业版

Polar Sponsor
爱发电 赞助
.NET 9.0

企业级多日历智能提醒平台,支持多日历聚合、智能调度、团队同步、递进提醒与日程分析。

日历提醒工具 专业版

功能概述

日历提醒工具 专业版是一项面向实际任务的技能,主要用于专业版日历提醒工具为团队与企业提供多日历聚合扫描、智能提醒调度与团队日程同步能力;在免费版单日历扫描与基础提醒基础上,专业版新增多日历聚合(工作、个人、团队)、递进式提醒(多次提醒逐步升级)、日程冲突检测、跨时区支持、团队日程协调与日程效率分析等功能,满足复杂的企业级日程管理需求;

核心要点

  • 专业版完全兼容免费版:相同的扫描脚本接口与提醒消息格式,免费版用户升级后已有定。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

日历提醒工具 专业版

概述

专业版日历提醒工具为团队与企业提供多日历聚合扫描、智能提醒调度与团队日程同步能力。在免费版单日历扫描与基础提醒基础上,专业版新增多日历聚合(工作、个人、团队)、递进式提醒(多次提醒逐步升级)、日程冲突检测、跨时区支持、团队日程协调与日程效率分析等功能,满足复杂的企业级日程管理需求。

专业版完全兼容免费版:相同的扫描脚本接口与提醒消息格式,免费版用户升级后已有定时任务与飞书配置可直接复用,无需重新配置。

核心能力

能力 免费版 专业版
单日历扫描 支持 支持
时段分类提醒 支持 支持
飞书通知 支持 支持
每晚定时扫描 支持 支持
多日历聚合 - 支持
递进式提醒 - 支持
日程冲突检测 - 支持
跨时区支持 - 支持
团队日程同步 - 支持
多渠道通知 - 支持
日程分析报表 - 支持
工作日/自定义过滤 - 支持
智能调度优化 - 支持

核心功能执行

用input_params参数进行配置。

输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 按照skill规范执行核心功能执行操作,遵循单一意图原则。 输出: 返回核心功能执行的执行结果,包含操作状态和输出数据。

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

参数配置与调用

用config_options参数进行配置。

输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 按照skill规范执行参数配置与调用操作,遵循单一意图原则。 输出: 返回参数配置与调用的执行结果,包含操作状态和输出数据。

  • 执行此能力时使用config_options参数,支持修改/重置/导入操作

结果处理与输出

用output_format参数进行配置。

输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 按照skill规范执行结果处理与输出操作,遵循单一意图原则。 输出: 返回结果处理与输出的执行结果,包含操作状态和输出数据。

  • 执行此能力时使用output_format参数,支持导出/保存/转换操作 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:企业级多日历智能、提醒平台、支持多日历聚合、智能调度、团队同步、递进提醒与日程分、面向团队与企业的、多日历智能提醒与、调度平台、核心能力、多日历聚合扫描、智能提醒调度、递进式提醒、团队日程同步、冲突检测、日程分析报表、多渠道通知、适用场景、团队日程协调、高管助理提醒、跨时区会议安排、会议室资源调度、日程效率分析、差异化、专业版在免费版基、础上新增多日历与、兼容免费版扫描脚、本与提醒格式、适用关键词、多日历、智能提醒、团队日程、递进提醒、日程分析、calendar、企业调度等。

使用场景

场景一:多日历聚合扫描

聚合工作日历、个人日历与团队共享日历,统一扫描并按优先级排序提醒。

# 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"]}'
        )

场景三:日程冲突检测与智能调度

自动检测时间重叠的日程,提供调整建议。

# 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"nn📋 按类型分布:"
for mtype, count in sorted(analysis["by_type"].items(), key=lambda x: -x[1]):
    report += f"n  {mtype}: {count} 场"

report += "nn💡 优化建议:"
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

结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。

示例

专业版配置支持多日历、递进提醒与团队同步。

{
  "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_xxxxxxxx"
  },
  "analysis": {
    "weekly_report": true,
    "report_day": 5,
    "export_format": "csv"
  },
  "team_sync": {
    "enabled": false,
    "team_members": []
  }
}

最佳实践

  • 日历分类:为不同类型日程设置优先级(工作=1,个人=2),冲突时按优先级建议调整。
  • 递进提醒:高优先级日程启用 3 级递进提醒(24h/2h/30min),确保不遗漏。
  • 冲突缓冲:设置 buffer_minutes(建议 15 分钟),同一地点背靠背日程预留转场时间。
  • 工作日过滤:若周末无需工作提醒,开启 workdays_only 过滤。
  • 分类跳过:将"已取消"、"请假"等类别加入 skip_categories,避免无效提醒。
  • 周报分析:每周五生成效率报表,持续优化会议时长与时间分配。
  • 团队同步:开启 team_sync 后,团队成员可查看彼此空闲时段,便于会议安排。
  • 多渠道冗余:关键日程同时开启飞书与 Telegram 通知,确保提醒送达。
  • 兼容免费版:专业版可直接复用免费版的 cron 任务与飞书 open_id 配置,升级零成本。

常见问题

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: true 与 analysis.report_day(1-7,周一到周日),系统在指定日期自动生成并发送周报到管理员。

依赖说明

运行环境

  • 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 执行任务。专业版在免费版基础上新增多日历聚合、递进提醒与团队同步,扫描脚本与提醒格式向后兼容免费版。

错误处理

错误场景 原因 处理方式
配置错误 参数缺失或格式错误 检查依赖说明中的配置要求
运行时错误 运行环境不满足 确认运行环境符合依赖说明
网络错误 连接超时或不可达 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案

已知限制

  • 需LLM支持,无LLM环境不可用
  • 复杂业务场景建议结合人工经验判断
  • 执行效率受模型能力与网络环境影响

相关专题

更多
Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

2026.11.12

0

15

Go-Zero安装与goctl环境配置教程
Go-Zero安装与goctl环境配置教程

本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。

2026.11.12

0

15

Go-Zero零基础入门教程
Go-Zero零基础入门教程

本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。

2026.11.12

0

15

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.3万人学习