本指南适用于任何可发起标准 HTTP 请求的智能体。只能通过用户明确提供的 Bearer Token 使用日历 API;不得使用 SSH、数据库、服务器文件或其他旁路访问用户日历。
API Base: https://calendar.hdaniel.studio/api/v1
Authorization: Bearer <用户提供的 Token>
首次连接:
1. GET /token/me
2. GET /calendars
3. GET /events?start=YYYY-MM-DD&end=YYYY-MM-DD
/token/me 返回的
username、timezone 与
scopes 为准。scopes 为准;读取成功不代表一定拥有写入权限。Asia/Shanghai。YYYY-MM-DD,end
是不包含该日的结束边界。单条创建:POST /api/v1/events。字段名为
calendar,但它的值必须是 GET
/calendars 返回的日历 id,绝不能使用显示名称。
{"calendar":"calendar_id_from_GET_calendars","title":"早八课程","start":"2026-09-08T08:00:00+08:00","end":"2026-09-08T09:40:00+08:00","all_day":false,"location":"","description":"","reminder_minutes":15}
reminder_minutes
可选。重要写入完成后,应查询相同时间范围,核验标题、时间、日历、描述、全天状态和提醒。
多个互相独立的日程应使用 POST
/api/v1/events/batch,避免逐条慢速请求。
{"events":[{"calendar":"calendar_id_from_GET_calendars","title":"睡觉","start":"2026-09-08T23:00:00+08:00","end":"2026-09-09T07:00:00+08:00","all_day":false,"location":"","description":""}],"duplicate_policy":"skip","atomic":true,"dry_run":false}
dry_run: true 仅预演;只有用户要求预览时才使用。duplicate_policy: "skip" 会跳过明显重复项。created、skipped、failed,不得把失败计作成功。PATCH
/api/v1/events/{event_id},仅提交用户要求改变的字段。DELETE /api/v1/events/{event_id}。YYYY-MM-DD 范围;不要混用
UTC 判断今天或本周。/calendars,使用返回的
id,而非显示名称。--http1.1。HTTP/2 也受支持。认证 API 不得使用明文 HTTP。