通过API管理Synology日历事件与待办事项。支持日历、事件、待办及联系人。基于官方日历API指南(v5)。
共性日历 API 技能 概览 管理 共性日历 使用正式的日历 API. 文件: 日历 API Guide enu.pdf. 连接 环境变量 QQQ快速启动.是一项面向实际任务的技能,主要用于API 参考.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用官方 Calendar API 管理 Synology Calendar。
文档:Calendar_API_Guide_enu.pdf
export SYNOLOGY_URL="http://{nas_ip}:5000" # 内网地址
export SYNOLOGY_USER="{username}"
export SYNOLOGY_PASSWORD="your-password"
from client import SynologyCalendar
cal = SynologyCalendar()
cal.login()
# 列出日历
calendars = cal.get_calendars()
for c in calendars:
print(f"{c['cal_id']}: {c['cal_displayname']}")
cal.logout()
| 方法 | 说明 | 状态 |
|---|---|---|
get_calendars() |
列出所有日历 | ✅ 正常工作 |
get_calendar(cal_id) |
获取日历详情 | ✅ 正常工作 |
create_calendar(...) |
创建日历 | ✅ 正常工作 |
delete_calendar(cal_id) |
删除日历 | ✅ 正常工作 |
| 方法 | 说明 | 状态 |
|---|---|---|
list_events(cal_id_list) |
列出事件 | ✅ 正常工作 |
get_event(evt_id) |
获取事件详情 | ✅ 正常工作 |
create_event(...) |
创建事件 | ✅ 正常工作 |
delete_event(evt_id) |
删除事件 | ✅ 正常工作 |
事件创建注意事项:
✅ 正常工作:
⚠️ 重要:SID 必须作为 URL 查询参数传递,不可置于 JSON 请求体中
Synology Calendar v1 API 要求将 _sid 参数置于 URL 查询字符串中,而非 JSON 请求体中。
create_event 参数说明:
| 参数 | 类型 | 是否必需 | 示例 |
|---|---|---|---|
| cal_id | string | ✅ | /admin/home/ |
| summary | string | ✅ | 事件标题 |
| dtstart | int | ✅ | 1770440000 |
| dtend | int | ✅ | 1770443600 |
| is_all_day | bool | ✅ | false |
| is_repeat_evt | bool | ✅ | false |
| color | string | ✅ | #D9AE00 |
| description | string | ✅ | 描述内容 |
| notify_setting | array | ✅ | [] |
| participant | array | ✅ | [] |
| timezone | string | (非全天事件时必需) | Asia/Shanghai |
示例:
# 非全天事件(已验证可用)
cal.create_event(
cal_id='/{username}/home/',
summary='Meeting',
dtstart=now,
dtend=now + 3600,
is_all_day=False,
is_repeat_evt=False,
description='Team meeting',
color='#D9AE00',
timezone='Asia/Shanghai'
)
| 方法 | 说明 | 状态 |
|---|---|---|
create_todo(...) |
创建任务 | ✅ 正常工作 |
list_todos(...) |
列出任务 | ✅ 正常工作 |
get_todo(evt_id) |
获取任务详情 | ✅ 正常工作 |
delete_todo(evt_id) |
删除任务 | ✅ 正常工作 |
complete_todo(evt_id) |
标记为完成 | ✅ 正常工作 |
| 方法 | 说明 | 状态 |
|---|---|---|
list_contacts() |
列出参与者 | ✅ 正常工作 |
# 登录
python client.py login
# 列出日历
python client.py list-calendars
# 列出待办事项
python client.py list-todos --cal-id "/{username}/home_todo/"
# 创建待办事项
python client.py create-todo
--cal-id "/{username}/home_todo/"
--title "Task name"
# 标记待办事项为完成
python client.py complete-todo --evt-id "1012"
先前问题:事件创建返回错误码 9009,原因如下:
original_cal_id 参数解决方案:使用 v1 API,并确保:
cal_id 来自 get_calendars() 的响应结果original_cal_id = cal_id(适用于非共享日历)?_sid=xxx| ID | 名称 | 类型 |
|---|---|---|
/{username}/home/ |
我的日历 | event |
/{username}/home_todo/ |
收件箱 | todo |
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章