← 返回
开发者工具 Key 中文

synology-calendar

Manage Synology Calendar events and todos via API. Supports calendars, events, todos, and contacts. Based on official Calendar API Guide (v5).
通过API管理Synology日历事件与待办事项。支持日历、事件、待办及联系人。基于官方日历API指南(v5)。
fpengziyang
开发者工具 clawhub v1.0.1 1 版本 100000 Key: 需要
★ 0
Stars
📥 592
下载
💾 10
安装
1
版本
#latest

概述

Synology Calendar API Skill

Overview

Manage Synology Calendar using the official Calendar API.

Documentation: Calendar_API_Guide_enu.pdf

Connection

Environment Variables

export SYNOLOGY_URL="http://{nas_ip}:5000"  # 内网地址
export SYNOLOGY_USER="{username}"
export SYNOLOGY_PASSWORD="your-password"

Quick Start

from client import SynologyCalendar

cal = SynologyCalendar()
cal.login()

# List calendars
calendars = cal.get_calendars()
for c in calendars:
    print(f"{c['cal_id']}: {c['cal_displayname']}")

cal.logout()

API Reference

Calendar Operations (SYNO.Cal.Cal)

MethodDescriptionStatus
-----------------------------
get_calendars()List all calendars✅ Working
get_calendar(cal_id)Get calendar details✅ Working
create_calendar(...)Create calendar✅ Working
delete_calendar(cal_id)Delete calendar✅ Working

Event Operations (SYNO.Cal.Event)

MethodDescriptionStatus
-----------------------------
list_events(cal_id_list)List events✅ Working
get_event(evt_id)Get event details✅ Working
create_event(...)Create event✅ Working
delete_event(evt_id)Delete event✅ Working

Event Creation Notes:

✅ Working:

  • All event types now work correctly with v1 API

⚠️ Critical: SID must be in URL parameter, not JSON body

The Synology Calendar v1 API requires the _sid parameter in the URL query string, not in the JSON body.

create_event Parameters:

ParameterTypeRequiredExample
------------------------------------
cal_idstring/admin/home/
summarystringEvent title
dtstartint1770440000
dtendint1770443600
is_all_dayboolfalse
is_repeat_evtboolfalse
colorstring#D9AE00
descriptionstringDescription
notify_settingarray[]
participantarray[]
timezonestring(if not all-day)Asia/Shanghai

Example:

# Non-all-day event (working)
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'
)

Todo Operations (SYNO.Cal.Todo)

MethodDescriptionStatus
-----------------------------
create_todo(...)Create task✅ Working
list_todos(...)List tasks✅ Working
get_todo(evt_id)Get task details✅ Working
delete_todo(evt_id)Delete task✅ Working
complete_todo(evt_id)Mark complete✅ Working

Contact Operations (SYNO.Cal.Contact)

MethodDescriptionStatus
-----------------------------
list_contacts()List participants✅ Working

CLI Usage

# Login
python client.py login

# List calendars
python client.py list-calendars

# List todos
python client.py list-todos --cal-id "/{username}/home_todo/"

# Create todo
python client.py create-todo \
  --cal-id "/{username}/home_todo/" \
  --title "Task name"

# Complete todo
python client.py complete-todo --evt-id "1012"

Known Issues

Event Creation (Fixed with v1 API)

Previous Issue: Event creation returned error 9009 due to:

  1. Using v5 API instead of v1 API
  2. Missing original_cal_id parameter
  3. SID passed in wrong location (JSON body vs URL parameter)

Solution: Use v1 API with:

  • cal_id from get_calendars() response
  • original_cal_id = cal_id (for non-shared calendars)
  • SID in URL parameter: ?_sid=xxx

Calendars

IDNameType
----------------
/{username}/home/My Calendarevent
/{username}/home_todo/Inboxtodo

Links

版本历史

共 1 个版本

  • v1.0.1 当前
    2026-03-30 09:05 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

developer-tools

CodeConductor.ai

larsonreever
AI驱动平台,提供快速全栈开发、智能体、工作流自动化及低代码AI集成的可扩展产品创建。
★ 68 📥 180,150
developer-tools

Gog

steipete
Google Workspace 命令行工具,支持 Gmail、日历、云端硬盘、通讯录、表格和文档。
★ 921 📥 185,794
developer-tools

Agent Browser

matrixy
专为AI智能体优化的无头浏览器自动化CLI,支持无障碍树快照和基于引用的元素选择。
★ 427 📥 118,193