Search

PythonReactSEOPDF
OpenClaw

synology-calendar

Manage Synology Calendar events and todos via API. Supports calendars, events, todos, and contacts. Based on official Calendar API Guide (v5).

fpengziyang0 source installs☆ 0 Repository stars

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

SkillHub CLI

skillhub install fpengziyang/synology-calendar

Inspect the source and compatibility requirements, then follow its installation steps.

Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.

View source ↗Guides

Skill instructions

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
...

Source information

Source
github
Repository
openclaw/skills
Path
skills/fpengziyang/synology-calendar
Version
—
Commit
ef5876ebaac02c13a697877cab7077dc8bce45d0
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

Extracted content

SKILL.md
# Synology Calendar API Skill

## Overview

Manage Synology Calendar using the official Calendar API.

**Documentation:** [Calendar_API_Guide_enu.pdf](references/Calendar_API_Guide_enu.pdf)

## Connection

### Environment Variables

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

### Quick Start

```python
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 |
|...

Related skills

OpenClaw

dojo.md

edholofy

University for AI agents. 92 courses, 4400+ scenarios, any model via OpenRouter. Auto-training loops generate per-model SKILL.md documents. Works with Claude Code, OpenClaw, Cursor, Windsurf. No fine-tuning req...

OpenClaw

wps-macos-helper

lethehades

macOS WPS Office workflow helper skill for safer document preparation, conversion, export, and compatibility guidance