{ "schema_version": 3, "id": "calendar", "name": "Calendar & Contacts", "description": "Radicale CalDAV / CardDAV server", "version": "1.0.0", "author": "pic", "kind": "builtin", "min_pic_version": "1.0", "capabilities": { "has_subdomain": true, "has_accounts": true, "has_admin_config": true, "has_storage": true, "has_egress": true, "has_api_hooks": false }, "subdomain": "calendar", "extra_subdomains": [], "backend": "cell-radicale:5232", "containers": ["cell-radicale"], "config_schema": { "port": { "type": "integer", "label": "CalDAV port (internal)", "default": 5232, "min": 1, "max": 65535 } }, "peer_config_template": { "caldav_url": "https://calendar.{domain}/{peer.username}/", "carddav_url": "https://calendar.{domain}/{peer.username}/", "username": "{peer.username}", "password": "{peer.service_credentials.calendar.password}" }, "accounts": { "manager": "calendar_manager", "credentials": ["password"] }, "compose": null, "backup": { "volumes": [ {"container": "cell-radicale", "path": "/data", "name": "radicale_data"} ], "config_paths": [ "config/radicale" ] }, "egress": { "default": "default", "allowed": ["default", "wireguard_ext", "openvpn", "tor"] }, "storage": { "primary_path": "data/radicale", "quota_mb": null } }