All nodes/Integrations/Calendar
Delete Calendar Event
DELETE a calendar resource.
Type in the graph: calendar_delete_event
Exec
An error branch can be enabled (expose_error_output) to handle failures on their own path.
Ports can be split into separate execution and data handles.
Try it
Minimal working workflow
- Execute
- Data
- Execute + Data
Pick your own connection or knowledge base first — the graph carries REPLACE_ME.
When to use it
Removes a calendar object by address. Cancelling a meeting softly — leaving it in the calendar with a marker — is a different job: Patch Calendar Event cannot change the status, while Put Calendar Event can, via its “Status” field set to “Cancelled”. Deleting wipes the object without a trace.
How it works
The node addresses the server through the “Event href” field. The address comes straight from Calendar Query or Get Calendar Event, unmodified.
A blank ETag means “delete whatever is there now”. A filled one becomes a condition: if the event
has been modified meanwhile, the server answers 412 (error_code PRECONDITION_FAILED) and
nothing is deleted. The output is { "ok": true } — the operation has no other confirmation.
Common mistakes
- The whole resource goes. For a recurring meeting that is the entire series. A single occurrence cannot be dropped by deleting — that takes adding an EXDATE to the event body and writing it back.
- Running it twice is an error. A second delete at the same address gets a 404 and stops with
the
NOT_FOUNDcode. When the step may run twice (a replayed turn, a retry branch), turn on “Error output” and treat that code as success. - A typo looks exactly the same.
NOT_FOUNDmeans “there is nothing at this address”, not “the event was already deleted” — check that anhrefwas substituted, not a UID. - Attendees learn nothing. Deleting the resource sends no notifications; a cancellation goes out through Calendar Schedule with the “Cancel (CANCEL)” operation.
- A failure stops the run. The node has no failure branch by default: without “Error output” enabled, an unsuccessful delete brings down the whole turn.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Calendar storecalendar_store | Datadata | — | required |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Successoutput | Execute + Dataexecute_data | object | |
Erroron_error | Execute + Dataexecute_data | — | shown when expose_error_output = true |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
CalDAV connectionconnection_id | string | "" | Saved workspace CalDAV connection, so a simple calendar graph does not need a separate CalDAV Config node. A node wired to the 'calendar_store' port wins over this field. connection: caldavoverridden by port: calendar_store |
Event hrefhref | string | "" | Path or absolute URL of the calendar object, exactly as returned by Calendar Query or Calendar Multiget ({{ nodes.<query>.output.events[0].href }}). A relative path is resolved against the connection's base URL. Example: /remote.php/dav/calendars/user/personal/9f1c-1234.ics supports templates |
| Advanced | |||
ETagetag | string | "" | Optimistic-concurrency token from a previous Get/Query. Empty = delete whatever is there now; a stale token makes the server answer 412 (error_code=PRECONDITION_FAILED) instead of deleting someone else's edit. supports templates |
Shared fields
Every node has these three — the platform adds them, not the node author.
expose_error_output— When enabled, show an execution output to connect nodes that run if this step fails.split_ports_in— Show separate execution and data input handles instead of one combined port.split_ports_out— Show separate execution and data output handles instead of one combined port.