Actions4
- Calendar Actions
- Event Actions
Overview
The CalDAV Node integrates with CalDAV servers to manage calendar data. Specifically, the Fetch Events operation under the Calendar resource retrieves events from a specified calendar within a defined time range. This is useful for workflows that need to synchronize, analyze, or process calendar events automatically.
Common scenarios include:
- Automatically fetching upcoming meetings or appointments from a corporate or personal calendar.
- Integrating calendar events into other systems like CRMs, task managers, or notification services.
- Archiving or backing up calendar events periodically.
- Filtering and processing recurring events individually for detailed automation.
For example, you could use this node to fetch all events from your work calendar for the next week and send reminders via email or Slack.
Properties
| Name | Meaning |
|---|---|
| Calendar Name or ID | Select a calendar from your connected account or specify a calendar URL/ID. Determines which calendar's events will be retrieved. You can choose from a list or specify an ID using an expression. |
| Search Events From (Start Date) | The start of the time range to search for events. Must be in RFC3339 format (e.g., "2024-03-20T00:00:00Z"). Events starting at or after this time will be included. All times are in UTC. |
| Search Events Until (End Date) | The end of the time range to search for events. Must be in RFC3339 format (e.g., "2024-03-27T23:59:59Z"). Only events starting before this time will be included. All times are in UTC. |
| Additional Options | A collection of optional settings: |
| - Show Individual Recurring Events | Boolean option to expand recurring events into individual instances within the specified time range. If false, only the recurring event definition is returned. Defaults to true. |
| - Include Raw Calendar Data | Boolean option to include the raw iCalendar (ICS) data in the output. Useful for debugging or advanced integrations. Defaults to false. |
| - Use Multi-Get | Boolean option to choose between two underlying methods to fetch calendar objects: calendarMultiGet (default, true) or calendarQuery (false). Helps with backward compatibility with some providers. |
| - URL Filter | A string containing a regular expression to filter events by their URL before fetching details. For example, .*meeting.* filters URLs containing "meeting". Leave empty to include all events. Defaults to \.ics. |
Output
The node outputs an array of JSON objects representing calendar events matching the query parameters.
Each event object typically includes:
- Standard event properties such as start time, end time, summary/title, description, location, and recurrence information.
- If enabled, the raw iCalendar (ICS) data for each event is included, providing full technical details in standard calendar format.
- When recurring events are expanded, each instance appears as a separate event object.
If binary data were involved (e.g., attachments), it would be indicated here, but this node focuses on JSON event data and optionally raw ICS text.
Dependencies
- Requires connection to a CalDAV server supporting calendar access.
- Needs an API authentication token or credentials configured in n8n to connect securely to the CalDAV service.
- No additional external libraries beyond those bundled with the node are required.
- The node uses internal helper methods to load calendar options dynamically and to perform multi-get or query operations depending on configuration.
Troubleshooting
- Empty results: Ensure the calendar ID or URL is correct and accessible. Verify the date range covers existing events.
- Date format errors: Start and end dates must be in valid RFC3339 format (e.g.,
"2024-03-20T00:00:00Z"). Incorrect formats cause failures. - Authentication issues: Confirm that the API key or credentials are valid and have permission to read the specified calendar.
- Recurring events not expanding: Check if the "Show Individual Recurring Events" option is enabled; otherwise, only the recurring event definitions are returned.
- Filtering not working: The URL filter uses regular expressions; ensure the regex syntax is correct and matches intended URLs.
- Provider compatibility: If events fail to fetch properly, try toggling the "Use Multi-Get" option to switch between fetching methods for better compatibility.