返回顶部
s

smart-task-scheduler

智能任务与排班管理系统,支持多时段工作安排、动态排班和上班时间自适应提醒

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.6
安全检测
已通过
216
下载量
0
收藏
概述
安装方式
版本历史

smart-task-scheduler

# 智能任务与排班管理系统 一个先进的个人任务与排班管理系统,能根据您复杂的多时段工作安排动态调整提醒,支持从表格文件导入排班,并通过自然语言修改排班。 ## 核心优势 - **多时段工作支持**:完整支持"早"、"晚"、"早晚"等多种工作时段安排 - **排班自适应提醒**:根据您每天实际的多个工作时段动态计算提醒时间 - **灵活提醒规则**:支持基于特定工作时段开始前/后的提醒 - **表格导入**:支持上传Excel/CSV排班表,自动解析并存储 - **自然语言修改**:可通过对话直接修改排班信息 - **智能时段选择**:为任务自动选择最合适的工作时段 ## 功能特性 ### 1. 多时段排班管理 - **多时段工作安排**:支持单个时段、多个时段的复杂工作安排 - **排班表格导入**:支持上传Excel/CSV文件,自动解析复杂排班信息 - **自然语言修改**:通过对话直接修改特定日期的上班时间和时段安排 - **时段智能选择**:为任务自动选择最合适的工作时段 - **排班查询**:查询任意日期的排班信息和时段安排 ### 2. 智能任务管理 - **动态提醒计算**:根据当天实际工作时段计算提醒时间 - **多时段提醒规则**: - `before_shift_start:X`:指定时段开始前X分钟提醒 - `after_shift_start:X`:指定时段开始后X分钟提醒 - `between_shifts:X`:两个工作时段之间提前X分钟提醒 - `fixed_time:HH:MM`:固定时间提醒 - **时段自动匹配**:根据任务描述自动推荐最合适的工作时段 ### 3. 智能提醒系统 - **智能体对话提醒**:在适当时间主动发起对话提醒,支持交互操作 - **时段关联提醒**:为同一任务在不同时段设置不同提醒 ## 工具接口 ### `import_schedule` **导入排班表** 从Excel或CSV文件导入排班信息。文件格式需包含日期、工作时段等列。 *参数*: - `file_path`: (字符串) 排班表文件路径 - `format`: (字符串) 文件格式,`excel` 或 `csv` *示例*: `/import_schedule /path/to/schedule.xlsx excel` ### `update_schedule` **更新排班信息** 通过自然语言修改特定日期的排班信息。 *参数*: - `date`: (字符串) 要修改的日期,格式为 `YYYY-MM-DD` 或自然语言如"明天"、"下周一" - `change_description`: (字符串) 变更描述,如"明天上早晚班"、"周三晚班" *示例*: `/update_schedule 明天 早晚班,9:30-11:30 和 16:00-21:30` ### `show_schedule` **查看排班** 查看指定日期范围的排班信息。 *参数*: - `start_date`: (字符串,可选) 开始日期,默认为今天 - `end_date`: (字符串,可选) 结束日期,默认为7天后 - `format`: (字符串,可选) 输出格式,`table`(表格) 或 `list`(列表) *示例*: `/show_schedule 2026-04-01 2026-04-07 table` ### `add_smart_task` **添加智能任务** 添加能根据排班动态调整提醒时间的任务。系统会根据任务类型和时段自动选择最合适的提醒时段。 *参数*: - `description`: (字符串) 任务描述 - `due_date`: (字符串) 截止日期,格式为 `YYYY-MM-DD` 或自然语言 - `reminder_rule`: (字符串) 提醒规则,支持: - `before_first_shift:30` (第一时段开始前30分钟) - `after_first_shift_start:15` (第一时段开始后15分钟) - `before_second_shift:30` (第二时段开始前30分钟) - `between_shifts:60` (两时段之间提前60分钟) - `fixed_time:14:00` (固定时间) - `task_type`: (字符串,可选) 任务类型,帮助系统选择时段,如`morning_task`, `between_shift_task`, `evening_task` - `priority`: (字符串,可选) 优先级,`high`/`medium`/`low` *示例*: `/add_smart_task 买早餐 明天 before_first_shift:20 high morning_task` ### `calculate_reminders` **计算提醒时间** 为所有任务计算基于排班的实际提醒时间。 *参数*: - `date`: (字符串,可选) 计算指定日期的提醒,默认为明天 *示例*: `/calculate_reminders 2026-04-01` ## 配置要求 ### 环境变量 飞书应用配置 (必需) FEISHU_APP_ID=your_app_id FEISHU_APP_SECRET=your_app_secret 文件路径配置 (可选) SCHEDULE_FILE_PATH=/path/to/schedule.json TASKS_FILE_PATH=/path/to/tasks.json ### 定时任务配置 创建以下定时任务以实现自动化: 1. **每日排班同步**(每晚22:00运行,同步明天的排班和任务): openclaw cron add \ --name "每日排班同步" \ --cron "0 22 * * *" \ --tz "Asia/Shanghai" \ --session isolated \ --message "请执行以下操作:1. 调用'smart-task-scheduler'技能的'calculate_reminders'功能,为明天的任务计算基于排班的提醒时间。2. 返回执行摘要,格式:[排班同步] 已为X个任务计算提醒时间。明天的工作时段是:Z。" \ --announce \ --agent smart-task-scheduler 2. **时段智能提醒**(根据实际工作时段的开始时间动态触发): openclaw cron add \ --name "工作时段提醒" \ --cron "0 7,9,13,15,20 * * 1-5" \ --tz "Asia/Shanghai" \ --session main \ --system-event "请检查当前时间是否需要触发提醒。调用'smart-task-scheduler'技能的'check_shift_reminders'功能,如果当前时间接近任何任务的提醒时间,在对话中提醒我。" \ --wake hourly \ --agent smart-task-scheduler ## 数据结构 ### 1. 多时段排班表 (`workspace/work_schedule.json`) json { "schedule": [ { "date": "2026-04-01", "work_shifts": [ { "shift_type": "晚班", "start": "15:30", "end": "22:30", "shift_index": 0 } ], "notes": "周三晚班", "tags": ["晚班"] }, { "date": "2026-04-02", "work_shifts": [ { "shift_type": "早班", "start": "09:30", "end": "11:30", "shift_index": 0 }, { "shift_type": "晚班", "start": "16:00", "end": "21:30", "shift_index": 1 } ], "notes": "周四早晚班", "tags": ["早晚班", "多时段"] }, { "date": "2026-04-03", "work_shifts": [ { "shift_type": "早班", "start": "08:00", "end": "15:30", "shift_index": 0 } ], "notes": "周五早班", "tags": ["早班"] } ], "default_schedule": { "work_shifts": [ { "shift_type": "标准班", "start": "09:30", "end": "18:30", "shift_index": 0 } ] }, "shift_types": { "早班": {"typical_start": "08:00", "typical_end": "16:00"}, "晚班": {"typical_start": "15:00", "typical_end": "23:00"}, "早晚班": {"description": "分早晚两个时段"} }, "last_updated": "2026-03-31T14:20:00Z" } ### 2. 智能任务文件 (`workspace/smart_tasks.json`) json { "smart_tasks": [ { "id": "st_20260401_001", "description": "上班前买晚餐食材", "due_date": "2026-04-01", "reminder_rule": "before_shift_start:60", "target_shift": 0, "target_shift_type": "晚班", "calculated_time": "2026-04-01 14:30", "priority": "high", "completed": false, "notes": "超市17点关门,记得下班前去" }, { "id": "st_20260402_001", "description": "两班之间去银行", "due_date": "2026-04-02", "reminder_rule": "between_shifts:30", "calculated_time": "2026-04-02 11:30", // 第一时段结束后,第二时段开始前 "priority": "medium", "completed": false, "recurring_source": "weekly_bank" }, { "id": "st_20260402_002", "description": "早班后去健身房", "due_date": "2026-04-02", "reminder_rule": "after_shift_end:15", "target_shift": 0, "calculated_time": "2026-04-02 11:45", "priority": "medium" } ], "recurring_rules": [ { "id": "weekly_bank", "description": "每周银行办事", "cycle": "weekly", "cycle_config": {"day_of_week": 4}, // 周四 "reminder_rule": "between_shifts:30", "shift_preference": "between_shifts", "active": true } ], "settings": { "feishu_reminder_minutes": 10, "default_shift_type": "标准班", "timezone": "Asia/Shanghai" } } ### 3. Excel/CSV排班表格式 支持多种格式,最推荐格式如下: **推荐格式**: | 日期 | 班次类型 | 时段1开始 | 时段1结束 | 时段2开始 | 时段2结束 | 备注 | |------------|----------|------------|------------|------------|------------|------------| | 2026-04-01 | 晚班 | 15:30 | 22:30 | | | 周三晚班 | | 2026-04-02 | 早晚班 | 09:30 | 11:30 | 16:00 | 21:30 | 周四早晚班 | | 2026-04-03 | 早班 | 08:00 | 15:30 | | | 周五早班 | **简化格式**(单时段自动解析): | 日期 | 排班描述 | 备注 | |------------|------------------------|------------| | 2026-04-01 | 晚(15:30-22:30) | 周三晚班 | | 2026-04-02 | 早晚(9:30-11:30 16:00-21:30) | 周四早晚班 | | 2026-04-03 | 早(8:00-15:30) | 周五早班 | **自动解析规则**: - "早(8:00-15:30)" → 解析为早班,时段:08:00-15:30 - "晚(15:30-22:30)" → 解析为晚班,时段:15:30-22:30 - "早晚(9:30-11:30 16:00-21:30)" → 解析为两个时段:09:30-11:30 和 16:00-21:30 ## 使用示例 ### 场景一:上传多时段排班表 1. **准备排班表**(Excel格式,使用推荐格式) 2. **上传排班表**: 用户:帮我上传这个月的排班表 (用户发送排班表文件) 技能:/import_schedule /path/to/uploaded/schedule.xlsx excel (解析并存储排班信息,自动识别多时段) ### 场景二:设置基于不同时段的提醒 1. **晚班前的任务**: 用户:明晚上晚班,下午3点提醒我去超市 技能:检测到明天是晚班(15:30-22:30)。/add_smart_task 去超市采购 明天 before_shift_start:30 (自动计算:15:30前30分钟 = 15:00提醒) 2. **早晚班之间的任务**: 用户:周四早晚班之间提醒我去银行 技能:检测到周四是早晚班(09:30-11:30 和 16:00-21:30)。/add_smart_task 去银行办事 2026-04-02 between_shifts:30 (自动计算:第一时段结束后,第二时段开始前30分钟 = 11:30提醒) 3. **早班后的任务**: 用户:周五早班后提醒我去健身房 技能:检测到周五是早班(08:00-15:30)。/add_smart_task 健身房锻炼 2026-04-03 after_shift_end:15 (自动计算:15:30后15分钟 = 15:45提醒) ### 场景三:自然语言修改多时段排班 用户:下周三改成早晚班 技能:/update_schedule 2026-04-08 早晚班,时段1:9:30-11:30,时段2:16:00-21:30 (更新2026-04-08的work_shifts为两个时段) 用户:下周四的晚班时间改成16:30开始 技能:/update_schedule 2026-04-09 晚班,16:30-23:00 (更新2026-04-09的晚班开始时间) 用户:查看下周排班 技能:/show_schedule 2026-04-06 2026-04-12 table (以表格形式显示下周排班) ### 场景四:自动时段匹配 用户:添加每周四的午间提醒任务 技能:系统会检查周四的排班: 如果是早晚班:建议在between_shifts时段提醒 如果是单时段班:建议在午休时间(12:00-13:00)提醒 会询问:您希望将提醒设置在哪个时段? ## 提醒计算逻辑 ### 1. 时段选择策略 系统根据任务类型和排班自动选择最合适的时段: | 任务类型/时间 | 单时段(早班) | 单时段(晚班) | 多时段(早晚班) | |---------------|---------------|---------------|------------------| | 早晨任务 | before_shift_start | before_shift_start | before_first_shift_start | | 午间任务 | fixed_time:12:00 | fixed_time:12:00 | between_shifts | | 晚间任务 | after_shift_end | before_shift_start | before_second_shift_start | | 休息日任务 | fixed_time:09:00 | fixed_time:09:00 | fixed_time:09:00 | ### 2. 时间计算示例 - **早晚班**(09:30-11:30,16:00-21:30): - `before_first_shift_start:30` → 09:00提醒 - `between_shifts:60` → 11:30提醒(第一时段结束后,第二时段开始前60分钟) - `before_second_shift_start:15` → 15:45提醒 - `after_second_shift_end:30` → 22:00提醒 - **晚班**(15:30-22:30): - `before_shift_start:45` → 14:45提醒 - `after_shift_start:60` → 16:30提醒 - `after_shift_end:30` → 23:00提醒 ## 注意事项 1. **多时段处理**:对于早晚班,系统会识别两个时段之间的间隔,`between_shifts`规则会自动在两时段之间设置提醒。 2. **时段索引**:`shift_index`从0开始,0表示第一个工作时段,1表示第二个工作时段。 3. **自动时段选择**:如果不指定具体时段,系统会根据任务描述和时间自动选择最合适的时段。 4. **休息日处理**:如果某天没有排班记录,视为休息日,使用默认的固定时间提醒。 5. **时间冲突检测**:如果计算的提醒时间与工作时间冲突,系统会自动调整。 ## 故障排除 - **排班表导入失败**: 1. 检查文件格式是否为支持的Excel(.xlsx/.xls)或CSV 2. 确认时间格式为HH:MM(24小时制) 3. 多时段排班确保时段之间不重叠 - **提醒时间计算错误**: 1. 检查当天的排班记录是否包含正确的工作时段 2. 确认提醒规则语法正确 3. 对于多时段,确保指定了正确的`shift_index` - **自然语言修改不生效**: 1. 确保时段描述清晰,如"早晚班"或具体时间"9:30-11:30 16:00-21:30" 2. 修改后使用`/show_schedule`确认修改已生效 --- *提示:对于多时段工作,建议先用`/show_schedule`查看排班,再根据实际时段设置提醒规则。*

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 smart-task-scheduler-1775926583 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 smart-task-scheduler-1775926583 技能

通过命令行安装

skillhub install smart-task-scheduler-1775926583

下载 Zip 包

⬇ 下载 smart-task-scheduler v1.0.6

文件大小: 5.26 KB | 发布时间: 2026-4-12 11:27

v1.0.6 最新 2026-4-12 11:27
smart-task-scheduler 1.0.6

- 移除 config.json 配置文件,简化配置结构

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部