时间市场 App 图标

时间市场

把想做的事,放进真正空着的时间里

一款 iOS 端的个人时间调度应用:用自然语言写下任务,它读懂时长与截止日,扫描系统日历里的空档,替你排进时间轴;AI Agent 作为技术预览展示。

在 TestFlight 试用iOS 18+ · SwiftUI · SwiftData · EventKit

核心能力

以下能力均已在客户端实现。

自然语言输入

一句「明天下午写 90 分钟论文综述」就能建任务。本地解析器会提取标题、时长、截止日与优先级,离线也能用。

智能排程

先由空闲查找器基于日历事件与工作时段算出可用时段,再按截止日与优先级贪心填入。长任务可拆成多个块;只排下一部分时会明确标记超载,不把未完成的任务当成已排完。

冲突检测与重排

同时检测时间块之间、以及时间块与外部系统日历事件的重叠,发现外部日历冲突时在时间轴顶部告警。用户发起重排时只调整未锁定的块,手动拖过的块会被标记为手动放置并锁定保留。

可视化时间轴

今日视图把日历事件与排定的时间块画在同一条刻度上,支持拖拽调整、长按锁定、时间块之间的冲突高亮和快速输入;外部日历冲突则作为告警呈现。

AI 助手

技术预览:客户端已有 WebSocket 会话状态机、工具注册表和流式界面;远程 Agent 服务与生产级认证不属于当前稳定能力。

Agent 技术预览:链路示例

下面是客户端会话与工具边界的示例,不代表远程 Agent 已稳定上线,也未包含生产级认证。

TMAgentClient · session
  1. 用户输入

    明天下午帮我留 90 分钟写论文综述

完整流程:用户输入——明天下午帮我留 90 分钟写论文综述;WebSocket 会话——客户端把这句话交给服务端 Agent,开始一轮流式会话。;工具调用 · 查空档——Agent 请求客户端执行查找空闲时段,参数为明天下午的时间范围与 90 分钟时长。;工具返回——客户端读取系统日历与排程偏好,回传两个可用时段:13:30 与 15:30。;工具调用 · 排任务——Agent 选定 13:30,请求客户端建任务并生成时间块。;冲突检测通过——新时间块与已有安排无重叠,本地数据库落盘。;写入日历——安排写进 EventKit,日历事件 ID 存在对应的时间块上,时间轴上出现新的一块。

真实界面

截图取自 iOS 客户端,未做修饰。

时间市场今日时间轴界面,显示当前时刻线与多个已排定的时间块
今日时间轴:当前时刻线、已排定的时间块与可拖拽调整的安排
时间市场任务列表界面,显示按状态筛选的任务与优先级标记
任务列表:按状态筛选、搜索,左侧色条对应优先级

一条任务的旅程

从一句话到日历里的一段时间。

  1. 写下任务

    自然语言输入,解析出标题、时长、截止日与优先级,写入本地数据库。

  2. 找出空档

    读取系统日历事件,结合工作时段、缓冲时间与专注块偏好,扫描出真正可用的时段。

  3. 生成安排

    贪心排程算法产出时间块,冲突检测确认无重叠后落到今日时间轴上。

  4. 回写日历

    安排写入 EventKit,日历事件 ID 存在对应的时间块上。同步失败会显式告知用户,而不是被静默忽略。

现在就试试

需要先装 TestFlight。用手机相机扫码,或直接点按钮。

在 TestFlight 试用https://testflight.apple.com/join/qJKwKC3j