Create or Update Calendar Event
ha_config_set_calendar_eventCreate a new calendar event, either one-time or recurring, by specifying summary, start, end, and optional recurrence rule.
Instructions
Create a new event in a calendar.
Creates a one-off event via the calendar.create_event service, or a
recurring series via the WebSocket calendar/event/create command
when rrule is provided (the REST service schema does not accept
recurrence rules).
When NOT to use:
To retrieve calendar events, use
ha_config_get_calendar_events.To delete an event, use
ha_config_remove_calendar_event.
Example Usage:
# Create a simple event
result = ha_config_set_calendar_event(
"calendar.family",
summary="Doctor appointment",
start="2024-01-15T14:00:00",
end="2024-01-15T15:00:00"
)
# Create a recurring event (every Monday, 10 occurrences)
result = ha_config_set_calendar_event(
"calendar.work",
summary="Team meeting",
start="2024-01-15T10:00:00",
end="2024-01-15T11:00:00",
rrule="FREQ=WEEKLY;BYDAY=MO;COUNT=10"
)
# Create an all-day event (date-only, no time component). The end
# date is EXCLUSIVE, so this spans 2026-07-04 through 2026-07-10.
result = ha_config_set_calendar_event(
"calendar.family",
summary="Vacation",
start="2026-07-04",
end="2026-07-11"
)Note:
Passing date-only values (YYYY-MM-DD) for both start and
end creates an all-day event; passing full ISO datetimes creates
a timed event. The two forms cannot be mixed — a date-only start
with a datetime end (or vice versa) is rejected. Because the
all-day end date is exclusive, a single-day all-day event must
set end to start + 1 day.
Not every calendar integration supports event creation; recurring events additionally require the integration to support recurrence (the built-in Local Calendar does).
Returns:
Success status and event details
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | Event end date or datetime in ISO format. For all-day events (date-only) the end date is exclusive; a single-day all-day event needs end = start + 1 day. | |
| rrule | No | Optional RFC 5545 recurrence rule, without 'RRULE:' prefix (e.g., 'FREQ=WEEKLY;BYDAY=MO' or 'FREQ=MONTHLY;BYDAY=3SA'). Creates a recurring event series. | |
| start | Yes | Event start date or datetime in ISO format | |
| summary | Yes | Event title/summary | |
| location | No | Optional event location | |
| entity_id | Yes | Calendar entity ID (e.g., 'calendar.family') | |
| description | No | Optional event description |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||