All nodes/Integrations/Calendar

Get Calendar Event

GET a single calendar resource (iCalendar).

Get Calendar Event
Calendar storeSuccess
Error

Type in the graph: calendar_get_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

Entry
Get Calendar Event
CalDAV Config
Exit
  • Execute
  • Data
  • Execute + Data
Press “Copy nodes”, open the editor and hit Ctrl+V on the canvas.

Pick your own connection or knowledge base first — the graph carries REPLACE_ME.

When to use it

One address, one resource: the whole raw iCalendar and, more to the point, a fresh etag to write against. When there are several addresses, fetch them in one request with Calendar Multiget. Finding the addresses in the first place is the job of Calendar Query.

How it works

The node fetches the object named by the “Event href” field. A relative path is resolved against the connection’s base URL and an absolute one is used as is, so a value from a query result drops straight in: {{ nodes.query.output.events[0].href }}.

The output carries href, etag, ics — the document exactly as the server returned it — and summary, the parsed fields of the resource’s first component (VEVENT or VTODO): uid, summary, dtstart, dtend, all_day, timezone, rrule, status, sequence and last_modified. With no body at all, summary is null.

Common mistakes

  • summary is an object, not a string. The event title lives at {{ nodes.<id>.output.summary.summary }}; {{ nodes.<id>.output.summary }} hands over the whole field set.
  • Only the first component is parsed. For a recurring event with modified occurrences the remaining components stay inside ics — parse it yourself if you need them.
  • A missing resource is an error. A 404 stops the node with error_code NOT_FOUND, and retrying changes nothing: the failure is deterministic. To handle absence inside the graph, turn on “Error output” and branch on the code.
  • An ETag goes stale after any write. The value you get here holds until the event is next modified; after Patch Calendar Event take the etag from that node’s output.
  • A whole calendar cannot be exported this way. The field expects the address of a single object, not of a collection — the list of events comes from Calendar Query.

Inputs

PortWirePayloadNotes
Calendar storecalendar_storeDatadata

required

Outputs

PortWirePayloadNotes
SuccessoutputExecute + Dataexecute_dataobject
Erroron_errorExecute + Dataexecute_data

shown when expose_error_output = true

Configuration

FieldTypeDefaultDescription
CalDAV connectionconnection_idstring""

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 hrefhrefstring""

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

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.