← Back to Skills Marketplace
fpengziyang

synology-calendar

by Abner · GitHub ↗ · v1.0.1
cross-platform ⚠ suspicious
316
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install synology-calendar
Description
Manage Synology Calendar events and todos via API. Supports calendars, events, todos, and contacts. Based on official Calendar API Guide (v5).
README (SKILL.md)

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)

Method Description Status
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)

Method Description Status
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:

Parameter Type Required Example
cal_id string /admin/home/
summary string Event title
dtstart int 1770440000
dtend int 1770443600
is_all_day bool false
is_repeat_evt bool false
color string #D9AE00
description string Description
notify_setting array []
participant array []
timezone string (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)

Method Description Status
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)

Method Description Status
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

ID Name Type
/{username}/home/ My Calendar event
/{username}/home_todo/ Inbox todo

Links

Usage Guidance
This package appears to implement a legitimate Synology Calendar client, but check the following before installing: (1) The skill needs SYNOLOGY_URL, SYNOLOGY_USER, and SYNOLOGY_PASSWORD — verify the registry metadata is corrected so you know it's asking for credentials. (2) Ensure the runtime will have Python and the 'requests' library (or install them yourself). (3) Inspect and confirm the SYNOLOGY_URL you provide points to a trusted NAS on your network (prefer HTTPS), and consider creating a least-privileged account for the skill rather than using an admin account. (4) Because the skill uses your NAS credentials, only install from a trusted source; if the package origin is unknown (homepage/source unknown), prefer getting the code directly from a verified repository or vendor. (5) If you plan to allow the agent to call the skill autonomously, be aware it will have access to the NAS credentials in memory while invoked — restrict that capability unless you trust the skill fully.
Capability Analysis
Type: OpenClaw Skill Name: synology-calendar Version: 1.0.1 The OpenClaw skill bundle for Synology Calendar appears benign. The `SKILL.md` provides clear documentation without any prompt injection attempts or instructions for the agent to deviate from its stated purpose. The `client.py` code uses standard Python libraries (`requests`, `os`) to interact with the Synology Calendar API, reading credentials from environment variables as expected. There is no evidence of malicious activities such as data exfiltration to unauthorized endpoints, arbitrary command execution, persistence mechanisms, or obfuscation. All network calls are directed to the user-configured Synology NAS URL, aligning with the skill's described functionality.
Capability Assessment
Purpose & Capability
Name/description (manage Synology Calendar) align with the provided client.py and SKILL.md: the code implements login, event/todo/contact operations and uses the Synology Calendar API endpoints under the user-provided SYNOLOGY_URL.
Instruction Scope
SKILL.md and client.py only instruct the agent to talk to the Synology/NAS API (login, event/task endpoints) and to read SYNOLOGY_URL/USER/PASSWORD environment variables. There are no instructions to read unrelated system files or to send data to third-party endpoints. SKILL.md references a local PDF in documentation that is not packaged with the skill (minor inconsistency).
Install Mechanism
This is instruction-only (no installer or network download), which is low-risk. However _meta.json lists 'requests' as a required library and Python >=3.7, but there is no install spec to ensure those dependencies are installed; runtime failures or surprises are possible if the environment lacks them.
Credentials
The skill requires sensitive credentials (SYNOLOGY_URL, SYNOLOGY_USER, SYNOLOGY_PASSWORD) according to SKILL.md and _meta.json, which is appropriate for a NAS-calendar client. However the registry metadata in the provided summary incorrectly reported 'Required env vars: none' and 'Primary credential: none' — that mismatch is an incoherence you should resolve before trusting the skill.
Persistence & Privilege
The skill does not request 'always: true', does not persist credentials to disk, and does not modify other skills or system-wide agent settings. It stores SID/did in memory only while running. Autonomous invocation is allowed by default (platform default) but is not combined with other high-risk flags.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install synology-calendar
  3. After installation, invoke the skill by name or use /synology-calendar
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
- No code changes in this release. - Documentation and SKILL.md updated; no functional differences. - All behavior and functionality remain the same as version 1.0.0.
v1.0.0
Manage Synology Calendar events and tasks
Metadata
Slug synology-calendar
Version 1.0.1
License
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is synology-calendar?

Manage Synology Calendar events and todos via API. Supports calendars, events, todos, and contacts. Based on official Calendar API Guide (v5). It is an AI Agent Skill for Claude Code / OpenClaw, with 316 downloads so far.

How do I install synology-calendar?

Run "/install synology-calendar" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is synology-calendar free?

Yes, synology-calendar is completely free (open-source). You can download, install and use it at no cost.

Which platforms does synology-calendar support?

synology-calendar is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created synology-calendar?

It is built and maintained by Abner (@fpengziyang); the current version is v1.0.1.

💬 Comments