All nodes/Integrations/Calendar

Calendar Tool

CalDAV tools for AI Agent. Requires calendar_store from caldav_config.

Calendar ToolT
Calendar store

Type in the graph: calendar_tool

Tool

Try it

Minimal working workflow

Entry
AI Agent
Calendar ToolT
LLM
Buffer MemoryS
Exit
  • Execute + Data
  • Extension
  • LLM
  • Memory
  • Execute + Data + Streaming
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

Twelve CalDAV operations the model calls on its own. Reach for this node when the request arrives as words — “what do I have tomorrow”, “move the meeting to Thursday” — and the sequence of steps is not known in advance. When it is known, a chain of ordinary steps is cheaper and more predictable: Calendar QueryPatch Calendar Event.

How it works

The node takes no part in the execution chain. Its output goes over a link_extension wire into the Extensions port of the AI Agent node. The model receives whichever operations are ticked in “Enabled tools”: list calendars, query events, query todos, batch fetch, get, create or replace, patch fields, delete, free/busy, and three scheduling ones — invite, reply, cancel.

Everything except scheduling is on by default. Scheduling needs an outbox URL on the connection and a server that implements RFC 6638 (iCloud and Google do not); when either is missing the tools are simply not shown to the model, rather than failing on every call.

A tool failure comes back to the model as JSON with ok: false and an error_code, and does not stop the run: the model sees the reason and can correct itself.

Common mistakes

  • The model does not know where the calendar is. The query tools take a required calendar_url argument. Leave “List calendars” enabled or name the collection URL in the system prompt, otherwise the model will invent one.
  • Writing is on by default. Create, patch and delete are part of the default set. For a read-only agent, untick those three.
  • Ticking scheduling does not enable scheduling. Without an outbox URL on the integration the tool stays hidden however many times you tick it.
  • An ETag lives inside the turn. Create and patch hand the model a new etag; the previous one is void after the write, and reusing it earns a refusal from the server.
  • Two calendar nodes on one agent. Tool names are fixed, so the second node declares the same names as the first. Two calendars mean two separate agents.
  • Nothing happens without an agent. Left unwired from the Extensions port, the node is just a setting on the canvas.

Inputs

PortWirePayloadNotes
Calendar storecalendar_storeDatadata

required

Outputs

PortWirePayloadNotes
tool_outExtensionlink_extension

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

Enabled toolsenabled_toolsarray<string>["cal_list_calendars","cal_query_events","cal_query_todos","cal_multiget_even…

Which CalDAV operations the model may call. Scheduling (invite/reply/cancel) is off by default: it needs a connection with a scheduling outbox and a provider that supports RFC 6638. Enabling it on a connection that has neither leaves the tools hidden from the model rather than failing per call.