원클릭으로
calendar
Use when listing, reading, creating, updating, or deleting Home Assistant calendar events through HA NOVA Relay.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when listing, reading, creating, updating, or deleting Home Assistant calendar events through HA NOVA Relay.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when the user wants Home Assistant operations through HA NOVA (App + Relay) with local OS-backed auth.
Use when checking Home Assistant home status, repairs, system health, unavailable/unknown entities, low batteries, or component/config summaries through HA NOVA Relay.
Use when HA NOVA Relay requests fail due to onboarding, connectivity, or auth issues.
Use when checking pending Home Assistant updates (core, OS, Apps, integrations, device firmware), reading release notes, installing updates with safety gates, or skipping/unskipping update versions through HA NOVA Relay.
Use when managing Home Assistant people, zones, tags, and user accounts — creating a person, drawing a zone, adding a tag, or reviewing who has access — through HA NOVA Relay.
Use when working with Home Assistant's voice assistant — testing what Assist understands, inspecting or editing Assist pipelines, managing which entities are exposed to voice, and listing TTS/STT/wake-word engines — through HA NOVA Relay.
| name | calendar |
| description | Use when listing, reading, creating, updating, or deleting Home Assistant calendar events through HA NOVA Relay. |
| license | MIT |
| compatibility | Requires the ha-nova CLI (run 'ha-nova setup' first) and the HA NOVA Relay in Home Assistant (App, or standalone container on Container/Core). |
Calendar event work:
Not in scope:
calendar.create_event has no recurrence field)Read and follow ../ha-nova/session-bootstrap.md.
Verify relay CLI: ha-nova relay health
If this fails: ha-nova setup
Use REST reads, one create service, and feature-gated WebSocket writes:
ha-nova relay core --method GET --path /api/calendars --out <result-file>ha-nova relay core --method GET --path /api/states/<calendar_entity_id> --out <result-file>ha-nova relay core --method GET --path <calendar-events-path> --out <result-file>ha-nova relay core --method POST --path /api/services/calendar/create_event --body-file <payload-file> --out <result-file>ha-nova relay ws --data-file <payload-file> --out <result-file> for calendar/event/update and calendar/event/deleteha-nova relay jq --file <result-file> --jq-file <filter-file><calendar-events-path> is:
/api/calendars/<calendar_entity_id>?start=<timestamp>&end=<timestamp>
Relay-core response body is under .data.body (envelope contract: skills/ha-nova/relay-api.md → Standard Envelope).
/api/calendars.entity_id or exact/clear name match./api/calendars/<entity_id>?start=<start>&end=<end>./api/states/<entity_id>. Gate create on supported_features & 1, delete on & 2, and update on & 4; stop when the required bit is absent.uid; use (uid, recurrence_id) as the instance identity. If several events match the user's description, ask one blocking question. Never guess.start_date_time/end_date_time for create and dtstart/dtend inside the WS event object; both values use the Home Assistant timezone and end must be after startstart_date/end_date for create and date-only dtstart/dtend for update; end is exclusivesummary; optional description and location are included only when setrrule to clear recurrencerecurrence_id, ask whether the scope is this occurrence (recurrence_range:"") or this and future occurrences ("THISANDFUTURE"). Bind that scope to the preview. For a single-occurrence update, omit rrule from the replacement event. Do not invent an entire-series mode.confirm:<token> from the core rule.{"entity_id":"calendar.example","summary":"Event","start_date_time":"<start>","end_date_time":"<end>"} to /api/services/calendar/create_event{"type":"calendar/event/update","entity_id":"calendar.example","uid":"<uid>","recurrence_id":"<instance>","recurrence_range":"<range>","event":{"summary":"Event","dtstart":"<start>","dtend":"<end>"}}; omit recurrence keys for a non-recurring event{"type":"calendar/event/delete","entity_id":"calendar.example","uid":"<uid>","recurrence_id":"<instance>","recurrence_range":"<range>"}; omit recurrence keys for a non-recurring event(uid, recurrence_id) must contain the full requested fields; for THISANDFUTURE, also check the first later occurrence when one exists in the window and state that later events outside the window were not verifiedTHISANDFUTURE, all occurrences with that uid from the selected instance onward must be absent within the windowskills/ha-nova/relay-api.md → Error Handling.uid: stop and name the limitation; do not try another endpoint.502: verify first. Create may already have produced an event, so automatic retry risks a duplicate.Apply skills/ha-nova/output-rules.md to all user-facing output.
CalendarWindowEventsNext stepThese slots render the Report shape (output-rules.md); event groups follow the List Frame. For multiple calendars, group by calendar and keep each group short. Writes use the Preview Card and Result Card; report the exact bounded verification scope.
Preview before write: nothing is saved until the user confirms the shown preview.
Confirmation binds to the displayed preview and expires on any change to target, payload, endpoint, or scope (context skill → Active Preview Confirmation).
Pre-preview phrases ("do it", "go ahead", "implement the plan") authorize drafting and preview only — never the write itself.
Delete and destructive operations require the typed confirmation code confirm:<token> verbatim; "yes" or any natural-language reply is invalid.
Never guess entity, service, or config IDs — resolve them or ask.
Home Assistant is reached exclusively through ha-nova relay.
For any HA write this skill does not cover, STOP and invoke ha-nova:fallback first — never probe unfamiliar write endpoints.
Create and update require natural confirmation; delete retains the core typed confirmation-code gate.
Calendar event writes have no HA NOVA revert. A provider recycle bin may exist but is not guaranteed; recreate only from a user-approved preview.
Always use bounded windows.
Never guess a calendar id from a partial name when multiple matches exist.
One event write at a time; no batch mutation.
skills/ha-nova/relay-api.mdskills/ha-nova/write-safety.md