dojo.md
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...
Manage Synology Calendar events and todos via API. Supports calendars, events, todos, and contacts. Based on official Calendar API Guide (v5).
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-calendarInspect 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.
Manage Synology Calendar using the official Calendar API.
Documentation: 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()
# List calendars
calendars = cal.get_calendars()
for c in calendars:
print(f"{c['cal_id']}: {c['cal_displayname']}")
cal.logout()
| 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 |
| 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:
⚠️ 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 |
| ... |
These signals come from indexed source analysis and may lag behind changes. Check the current source files.
# 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 |
|...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...
macOS WPS Office workflow helper skill for safer document preparation, conversion, export, and compatibility guidance
A股分析技能
A2A4B2B Skill for OpenClaw