跳到主要内容

📅 日历

安排、跟踪和管理事件,并让 AI 帮你规划时间。

日历是 OPL 数据空间 内置的日程功能。每个用户都拥有个人日历,可以创建事件、设置周期规则、共享日历,并让模型通过自然语言创建和管理事件。

已启用的 自动化 会自动显示在专门的 计划任务 日历中,因此手动事件和自动化任务可以在一个时间视图里统一查看。

备注

日历默认开启。管理员可通过 ENABLE_CALENDAR 或管理面板开关将其关闭。


为什么需要日历

日历让模型具备了“处理时间”的能力。启用后,你可以直接对模型说:

  • 提醒我明天下午三点跟设计团队 follow up
  • 从下周一开始,每个工作日上午九点安排站会
  • 帮我看看这周还有什么安排

AI 驱动的排程

当模型启用了 native function calling 后,它可以通过自然语言搜索、创建、更新和删除日历事件。

当提醒时间到达时,你会收到:

  • 页面内 toast 通知
  • 浏览器通知
  • 可选的 webhook 通知

自动化集成

启用的 自动化 会以虚拟事件形式展示在 计划任务 日历中。未来执行时间和历史运行结果都能在这里看到。

共享日历

可以通过访问授权把某个日历共享给特定用户或用户组,并支持 RSVP 状态跟踪。

多日历组织

你可以按不同用途拆分多个日历,例如:

  • 个人
  • 团队会议
  • On-Call

每个用户首次进入日历时,系统会自动创建:

  • 个人
  • 计划任务

核心功能

功能说明
📅 月 / 周 / 日视图完整日历界面
🔁 周期事件基于 RRULE 的重复规则
🤖 Agent 管理模型可自主搜索、创建、更新、删除事件
⚡ 自动化叠加自动化任务与历史运行会显示成虚拟事件
👥 日历共享支持按用户 / 用户组授权
📍 地点与描述支持事件地点和富文本描述
🎨 颜色标记支持按日历或事件配置颜色
✅ RSVP / 参与人支持邀请、接受、拒绝、暂定
🔔 提醒支持 toast、浏览器通知和 webhook

访问控制

对非管理员用户,日历受权限控制:

  • 管理员:始终可访问
  • 普通用户:需要 功能 > 日历 权限

参见 RBAC 权限

授权方式:

  1. 打开 管理面板 > 用户 > 用户组
  2. 编辑默认权限或某个用户组
  3. 启用 功能 > 日历

也可以通过 USER_PERMISSIONS_FEATURES_CALENDAR 设置默认值。


快速开始

进入日历

从侧边栏的 用户菜单 > 日历 打开。首次访问时,系统会自动创建两个日历:

  • 个人:默认手动事件日历
  • 计划任务:自动化任务虚拟日历,仅在用户拥有自动化权限时显示
快速固定

在用户菜单中按住 Shift,可以显示固定 / 取消固定按钮,把日历作为侧边栏快捷入口。

创建事件

  1. 点击 新建事件,或直接点击日历网格中的某一天 / 某个时间段
  2. 填写:
    • 标题
    • 日历
    • 时间
    • 全天
    • 地点
    • 描述
  3. 点击 创建

编辑或删除事件

点击任意事件打开编辑器。自动化生成的虚拟事件不能直接编辑,点击后会跳到对应自动化或它生成的聊天。


日历视图

顶部下拉可切换:

你可以用箭头在时间范围间切换,或点击 Today 回到今天。侧边栏中的迷你日历支持快速跳转日期。


自动化集成

计划任务 是一个虚拟日历,不直接存储在数据库中,而是在 API 返回时动态生成。

未来执行

对所有启用且带 RRULE 的自动化,系统会计算请求时间范围内的未来执行点,并作为虚拟事件显示出来。

历史执行

已完成的自动化运行也会作为历史事件显示,并可直接跳转到生成的聊天。

工作方式

  • 虚拟日历使用固定 ID:__scheduled_tasks__
  • 虚拟事件 ID 会以 auto_run_ 开头
  • 它们不能在日历 UI 中直接编辑或删除
  • 点击未来事件会跳转到自动化编辑器
  • 点击历史事件会跳转到对应聊天

Agent 自动管理事件

启用 native function calling 后,模型可以自主操作你的日历:

工具作用
search_calendar_events按文本或时间范围搜索事件
create_calendar_event创建事件
update_calendar_event更新标题、时间、描述、地点或取消事件
delete_calendar_event永久删除事件

使用这些工具的前提:

  1. 模型启用了 Native Function Calling
  2. 模型启用了内建工具
  3. 内建工具里的日历分类已开启
  4. 全局 ENABLE_CALENDAR 已开启
  5. 用户拥有 功能 > 日历 权限

所有时间值都会按用户当前时区自动处理。


共享日历

日历使用与知识库、模型等资源相同的访问授权机制。

分享方式

  1. 打开该日历的设置
  2. 为指定用户或用户组授予 readwrite

权限含义

权限说明
读取可以查看日历和事件
写入可以查看、创建、更新、删除事件

只有日历所有者或管理员可以修改授权和删除日历本身。


参与人和 RSVP

事件支持参与人和 RSVP:

状态含义
pending已邀请,未回应
accepted已接受
declined已拒绝
tentative暂定

作为参与人的用户,即使不是日历所有者,也能看到相关事件。


提醒与告警

每个事件都可以设置提醒时间:

  • 事件开始时
  • 5 / 10 / 15 / 30 minutes before
  • 1 hour before

默认是 10 分钟前

提醒的投递方式:

  1. Toast 通知
  2. 浏览器通知
  3. Webhook

服务端会通过 meta.alerted_at 去重,保证同一个事件在同一次开始时间上最多提醒一次。

全局轮询窗口可通过 CALENDAR_ALERT_LOOKAHEAD_MINUTES 配置。


配置项

变量默认值说明
ENABLE_CALENDARTrue全局启用或禁用日历