自然语言输入
一句「明天下午写 90 分钟论文综述」就能建任务。本地解析器会提取标题、时长、截止日与优先级,离线也能用。
把想做的事,放进真正空着的时间里
一款 iOS 端的个人时间调度应用:用自然语言写下任务,它读懂时长与截止日,扫描系统日历里的空档,替你排进时间轴;AI Agent 作为技术预览展示。
以下能力均已在客户端实现。
一句「明天下午写 90 分钟论文综述」就能建任务。本地解析器会提取标题、时长、截止日与优先级,离线也能用。
先由空闲查找器基于日历事件与工作时段算出可用时段,再按截止日与优先级贪心填入。长任务可拆成多个块;只排下一部分时会明确标记超载,不把未完成的任务当成已排完。
同时检测时间块之间、以及时间块与外部系统日历事件的重叠,发现外部日历冲突时在时间轴顶部告警。用户发起重排时只调整未锁定的块,手动拖过的块会被标记为手动放置并锁定保留。
今日视图把日历事件与排定的时间块画在同一条刻度上,支持拖拽调整、长按锁定、时间块之间的冲突高亮和快速输入;外部日历冲突则作为告警呈现。
技术预览:客户端已有 WebSocket 会话状态机、工具注册表和流式界面;远程 Agent 服务与生产级认证不属于当前稳定能力。
下面是客户端会话与工具边界的示例,不代表远程 Agent 已稳定上线,也未包含生产级认证。
用户输入
明天下午帮我留 90 分钟写论文综述
完整流程:用户输入——明天下午帮我留 90 分钟写论文综述;WebSocket 会话——客户端把这句话交给服务端 Agent,开始一轮流式会话。;工具调用 · 查空档——Agent 请求客户端执行查找空闲时段,参数为明天下午的时间范围与 90 分钟时长。;工具返回——客户端读取系统日历与排程偏好,回传两个可用时段:13:30 与 15:30。;工具调用 · 排任务——Agent 选定 13:30,请求客户端建任务并生成时间块。;冲突检测通过——新时间块与已有安排无重叠,本地数据库落盘。;写入日历——安排写进 EventKit,日历事件 ID 存在对应的时间块上,时间轴上出现新的一块。
截图取自 iOS 客户端,未做修饰。


从一句话到日历里的一段时间。
自然语言输入,解析出标题、时长、截止日与优先级,写入本地数据库。
读取系统日历事件,结合工作时段、缓冲时间与专注块偏好,扫描出真正可用的时段。
贪心排程算法产出时间块,冲突检测确认无重叠后落到今日时间轴上。
安排写入 EventKit,日历事件 ID 存在对应的时间块上。同步失败会显式告知用户,而不是被静默忽略。