{"id":"olock","name":"时钟","description":"定时提醒：在指定时间（可以重复）提醒用户，到点通知 Octo 或请求一个地址。能新建、查看、修改、暂停、删除提醒。instruction 用自然语言，例如「明天早上 8 点提醒我开会」「每 30 分钟提醒我喝水，提醒 5 次」「列出我的提醒」「把喝水的提醒停掉」。","url":"http://127.0.0.1","prompt":"你是「时钟」，帮用户管理定时提醒。\n用户说的时间都按他的时区理解；需要知道现在几点、今天几号或星期几时，先调用 get_time。\n新建提醒：时间用 at（\"YYYY-MM-DD HH:mm\"）、time（\"HH:mm\"，下一次到这个钟点）或 in（多久之后）三选一；重复用 every，次数用 times。\n例：「每天早上 8 点提醒我打卡」= create_reminder{note:\"打卡\", time:\"08:00\", every:\"1d\"}；「10 分钟后提醒我关火」= create_reminder{note:\"关火\", in:\"10m\"}；「每半小时提醒我喝水，提醒 4 次」= create_reminder{note:\"喝水\", in:\"30m\", every:\"30m\", times:4}。\n修改、暂停、删除前，不知道编号就先 list_reminders。以工具返回为准，回复简短，说清楚下一次提醒的时间。","toolsUrl":"https://olock.earth.icu/octo/tools","tools":[{"type":"function","idempotent":true,"function":{"name":"get_time","description":"返回当前时间、用户的时区和今天是星期几。算「明天」「下周一」这类时间之前先调用它。","parameters":{"type":"object","properties":{}}}},{"type":"function","idempotent":true,"function":{"name":"list_reminders","description":"列出用户的提醒事项（默认只列进行中和已暂停的），包括下次提醒时间、重复方式、已提醒次数。","parameters":{"type":"object","properties":{"status":{"type":"string","enum":["active","done","all"],"description":"active：进行中和已暂停（默认）；done：已结束；all：全部"}}}}},{"type":"function","idempotent":true,"function":{"name":"create_reminder","description":"新建一个提醒。到时间后 olock 会通知 Octo（或请求 target 指定的地址）。时间三选一：at、time、in。重复用 every，次数用 times（不填 times 就一直重复）。","parameters":{"type":"object","properties":{"note":{"type":"string","description":"提醒内容（备注），到时间时原样发出"},"title":{"type":"string","description":"简短的标题，可选，例如「喝水」"},"at":{"type":"string","description":"具体时间，用户时区的 \"YYYY-MM-DD HH:mm\"，或带时区的 ISO 时间"},"time":{"type":"string","description":"\"HH:mm\"：下一次到这个钟点（今天还没到就是今天，否则明天）。配合 every:\"1d\" 就是每天这个时间"},"in":{"type":"string","description":"多久之后，时长，例如 \"30s\"、\"10m\"、\"1h30m\"、\"2d\"、\"1w\"，也可以写 \"30分钟\"、\"2小时\""},"every":{"type":"string","description":"重复间隔（至少 1 分钟），时长，例如 \"30s\"、\"10m\"、\"1h30m\"、\"2d\"、\"1w\"，也可以写 \"30分钟\"、\"2小时\"。不填就只提醒一次"},"times":{"type":"integer","minimum":1,"maximum":100000,"description":"一共提醒几次（含第一次）。有 every 时不填就无限重复"},"target":{"type":"string","description":"到时间请求的地址。不填（或 \"octo\"）= 通知用户的 Octo；也可以是一个 https 地址"},"method":{"type":"string","enum":["POST","GET"],"description":"请求 target 用的方法（只对自定义地址有效），默认 POST"},"weight":{"type":"integer","minimum":0,"maximum":80,"description":"通知 Octo 时的优先级（0–80），不填用默认"}},"required":["note"]}}},{"type":"function","idempotent":true,"function":{"name":"update_reminder","description":"修改一个提醒：只改给出的字段。改时间（at / time / in）会重新安排下一次；enabled:false 暂停，true 恢复。","parameters":{"type":"object","properties":{"id":{"type":"integer","description":"提醒编号"},"note":{"type":"string"},"title":{"type":"string"},"at":{"type":"string"},"time":{"type":"string"},"in":{"type":"string"},"every":{"type":"string","description":"重复间隔；\"\" 表示改成不重复。时长，例如 \"30s\"、\"10m\"、\"1h30m\"、\"2d\"、\"1w\"，也可以写 \"30分钟\"、\"2小时\""},"times":{"type":["integer","null"],"description":"一共提醒几次；null 表示无限重复"},"target":{"type":"string"},"method":{"type":"string","enum":["POST","GET"]},"weight":{"type":["integer","null"],"minimum":0,"maximum":80},"enabled":{"type":"boolean","description":"false 暂停，true 恢复"}},"required":["id"]}}},{"type":"function","idempotent":true,"function":{"name":"delete_reminder","description":"删除一个提醒。","parameters":{"type":"object","properties":{"id":{"type":"integer","description":"提醒编号"}},"required":["id"]}}},{"type":"function","idempotent":true,"function":{"name":"trigger_reminder","description":"立即发出一次这个提醒（用来测试），不影响原来的安排。","parameters":{"type":"object","properties":{"id":{"type":"integer","description":"提醒编号"}},"required":["id"]}}},{"type":"function","idempotent":true,"function":{"name":"list_runs","description":"最近的提醒发送记录：什么时候发的、发给哪里、成功没有。","parameters":{"type":"object","properties":{"id":{"type":"integer","description":"只看这个提醒的记录（可选）"},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"默认 20"}}}}},{"type":"function","idempotent":true,"function":{"name":"set_timezone","description":"设置用户的时区（IANA 名称，例如 Asia/Shanghai、America/New_York）。时间都按这个时区理解和显示。","parameters":{"type":"object","properties":{"timezone":{"type":"string"}},"required":["timezone"]}}}],"weight":{"min":0,"max":80,"default":30},"homepage":"https://olock.earth.icu/"}