n8n-nodes-caldav-pro 3.4.1 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +26 -0
- package/dist/credentials/IcsFeedApi.credentials.d.ts +7 -0
- package/dist/credentials/IcsFeedApi.credentials.js +30 -0
- package/dist/credentials/IcsFeedApi.credentials.js.map +1 -0
- package/dist/nodes/CalDav/CalDav.node.js +104 -38
- package/dist/nodes/CalDav/CalDav.node.js.map +1 -1
- package/dist/nodes/CalDav/IcsFeedDescription.d.ts +3 -0
- package/dist/nodes/CalDav/IcsFeedDescription.js +138 -0
- package/dist/nodes/CalDav/IcsFeedDescription.js.map +1 -0
- package/dist/nodes/CalDav/IcsFeedFunctions.d.ts +12 -0
- package/dist/nodes/CalDav/IcsFeedFunctions.js +278 -0
- package/dist/nodes/CalDav/IcsFeedFunctions.js.map +1 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,24 @@ All notable changes to this project are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project
|
|
5
5
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **External ICS Feed** read-only resource for subscribed `https://`, `webcal://`,
|
|
12
|
+
and `webcals://` calendars. It supports Get Many, Get Next, and Search while
|
|
13
|
+
preserving recurring-event, timezone, all-day, and reminder parsing.
|
|
14
|
+
- A separate **ICS Feed API** credential stores token-bearing subscription links
|
|
15
|
+
as a secret. Feed events expose `source: "icsFeed"` and an optional Feed Name,
|
|
16
|
+
never the subscription URL.
|
|
17
|
+
|
|
18
|
+
### Security
|
|
19
|
+
|
|
20
|
+
- External feed requests never use CalDAV authentication and send no credentials
|
|
21
|
+
or cookies. Only public HTTPS hosts on port 443 are accepted; local/private
|
|
22
|
+
names, IP literals, custom ports, and cross-origin or unsafe redirects are
|
|
23
|
+
rejected without exposing the feed URL in errors or workflow output.
|
|
24
|
+
|
|
7
25
|
## [3.4.1]
|
|
8
26
|
|
|
9
27
|
### Security
|
package/README.md
CHANGED
|
@@ -163,6 +163,32 @@ Name it `n8n-caldav`.
|
|
|
163
163
|
|
|
164
164
|
> Versions before 2.7.0 additionally shifted timed events by the *n8n host's* UTC offset whenever **Timezone** was set, and wrote all-day events on the wrong calendar date. If you created events with an older version, re-check their times.
|
|
165
165
|
|
|
166
|
+
## External ICS / WebCal Feeds (Read-Only)
|
|
167
|
+
|
|
168
|
+
Use **Resource** = `ICS Feed (Read-Only)` for subscribed calendars that are not
|
|
169
|
+
exposed as CalDAV collections — for example Foodsharing, school holidays,
|
|
170
|
+
club schedules, or public holiday feeds. It supports **Get Many**, **Get Next**,
|
|
171
|
+
and **Search**; writing, moving, or deleting a feed event is intentionally not
|
|
172
|
+
available.
|
|
173
|
+
|
|
174
|
+
1. Create an **ICS Feed API** credential.
|
|
175
|
+
2. Paste the subscription link into **Feed URL**. `https://`, `webcal://`, and
|
|
176
|
+
`webcals://` links are supported; `webcal` is retrieved via HTTPS.
|
|
177
|
+
3. Optionally set **Feed Name** (for example `Foodsharing`). It is returned as
|
|
178
|
+
`feedName` with every event, while the subscription URL is never exposed in
|
|
179
|
+
output or error messages.
|
|
180
|
+
4. Select the `ICS Feed (Read-Only)` resource and one of the read operations.
|
|
181
|
+
|
|
182
|
+
> Treat the subscription link like a password: it commonly contains a personal
|
|
183
|
+
> token that grants read access to the whole calendar. It belongs only in the
|
|
184
|
+
> ICS Feed credential, never in a node field, workflow JSON, log, or chat.
|
|
185
|
+
>
|
|
186
|
+
> For SSRF safety, the node accepts public HTTPS hostnames on port 443 only and
|
|
187
|
+
> rejects local/private names, IP addresses, custom ports, and redirects to a
|
|
188
|
+
> different origin. DNS rebinding cannot be fully prevented in a Node.js client;
|
|
189
|
+
> restrict outbound network access from your n8n host if untrusted users can
|
|
190
|
+
> edit feed credentials.
|
|
191
|
+
|
|
166
192
|
## AI Agent Usage
|
|
167
193
|
|
|
168
194
|
The node is declared `usableAsTool: true` with LLM-friendly descriptions on every parameter. An AI Agent can call it directly from a chat prompt. Example:
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IcsFeedApi = void 0;
|
|
4
|
+
class IcsFeedApi {
|
|
5
|
+
name = 'icsFeedApi';
|
|
6
|
+
displayName = 'ICS Feed API';
|
|
7
|
+
documentationUrl = 'https://github.com/daisytwo/n8n-nodes-caldav-pro';
|
|
8
|
+
properties = [
|
|
9
|
+
{
|
|
10
|
+
displayName: 'Feed URL',
|
|
11
|
+
name: 'feedUrl',
|
|
12
|
+
type: 'string',
|
|
13
|
+
typeOptions: { password: true },
|
|
14
|
+
default: '',
|
|
15
|
+
placeholder: 'https://example.com/calendars/public/holidays.ics',
|
|
16
|
+
description: 'The subscription link of a public iCalendar feed. Accepts https://, webcal:// and webcals:// — a webcal address is read over HTTPS. Stored as a secret because these links usually carry an access token in the path or query, which grants read access to the whole calendar. Must be a public host on port 443; IP addresses, private network names and other ports are refused.',
|
|
17
|
+
required: true,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
displayName: 'Feed Name',
|
|
21
|
+
name: 'feedName',
|
|
22
|
+
type: 'string',
|
|
23
|
+
default: '',
|
|
24
|
+
placeholder: 'School Holidays',
|
|
25
|
+
description: 'Optional label reported as "feedName" on every event this feed returns, so events from several feeds can be told apart downstream. The feed URL itself is never written to the output.',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
exports.IcsFeedApi = IcsFeedApi;
|
|
30
|
+
//# sourceMappingURL=IcsFeedApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IcsFeedApi.credentials.js","sourceRoot":"","sources":["../../credentials/IcsFeedApi.credentials.ts"],"names":[],"mappings":";;;AAgBA,MAAa,UAAU;IACtB,IAAI,GAAG,YAAY,CAAC;IAEpB,WAAW,GAAG,cAAc,CAAC;IAE7B,gBAAgB,GAAG,kDAAkD,CAAC;IAEtE,UAAU,GAAsB;QAC/B;YACC,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC/B,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,mDAAmD;YAChE,WAAW,EACV,oXAAoX;YACrX,QAAQ,EAAE,IAAI;SACd;QACD;YACC,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EACV,wLAAwL;SACzL;KACD,CAAC;CACF;AA7BD,gCA6BC"}
|
|
@@ -4,8 +4,10 @@ exports.CalDav = void 0;
|
|
|
4
4
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
5
|
const crypto_1 = require("crypto");
|
|
6
6
|
const GenericFunctions_1 = require("./GenericFunctions");
|
|
7
|
+
const IcsFeedFunctions_1 = require("./IcsFeedFunctions");
|
|
7
8
|
const CalendarDescription_1 = require("./CalendarDescription");
|
|
8
9
|
const EventDescription_1 = require("./EventDescription");
|
|
10
|
+
const IcsFeedDescription_1 = require("./IcsFeedDescription");
|
|
9
11
|
function rethrowWriteError(error, itemIndex, calendarUrl) {
|
|
10
12
|
if (error.httpCode === '403') {
|
|
11
13
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The calendar rejected the write (403 Forbidden): ${calendarUrl}`, {
|
|
@@ -65,6 +67,44 @@ function readWindowBound(itemIndex, parameter, label) {
|
|
|
65
67
|
}
|
|
66
68
|
return parsed;
|
|
67
69
|
}
|
|
70
|
+
function readWindow(itemIndex, operation) {
|
|
71
|
+
if (operation === 'getNext') {
|
|
72
|
+
const lookaheadDays = this.getNodeParameter('lookaheadDays', itemIndex, 30);
|
|
73
|
+
if (!Number.isFinite(lookaheadDays) || lookaheadDays <= 0) {
|
|
74
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Lookahead Days must be a positive number, got ${lookaheadDays}.`, {
|
|
75
|
+
itemIndex,
|
|
76
|
+
description: 'A zero or negative window can never contain an event.',
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const rangeStart = new Date();
|
|
80
|
+
const rangeEnd = new Date(rangeStart.getTime() + lookaheadDays * 24 * 60 * 60 * 1000);
|
|
81
|
+
const today = (0, GenericFunctions_1.localDateString)(rangeStart, this.getTimezone());
|
|
82
|
+
return {
|
|
83
|
+
rangeStart,
|
|
84
|
+
rangeEnd,
|
|
85
|
+
accept: (event) => {
|
|
86
|
+
if (!event.start)
|
|
87
|
+
return true;
|
|
88
|
+
if (event.allDay)
|
|
89
|
+
return event.end ? event.end > today : event.start >= today;
|
|
90
|
+
return new Date(event.start) >= rangeStart;
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
const rangeStart = readWindowBound.call(this, itemIndex, 'timeMin', 'Time Min');
|
|
95
|
+
const rangeEnd = readWindowBound.call(this, itemIndex, 'timeMax', 'Time Max');
|
|
96
|
+
if (rangeEnd.getTime() <= rangeStart.getTime()) {
|
|
97
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Time Max must be after Time Min (got ${rangeStart.toISOString()} to ${rangeEnd.toISOString()}).`, {
|
|
98
|
+
itemIndex,
|
|
99
|
+
description: 'The window is empty or reversed, so it can never match an event. Check the order of the two fields.',
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
if (operation === 'search') {
|
|
103
|
+
const query = this.getNodeParameter('query', itemIndex);
|
|
104
|
+
return { rangeStart, rangeEnd, accept: (event) => (0, GenericFunctions_1.eventMatchesText)(event, query) };
|
|
105
|
+
}
|
|
106
|
+
return { rangeStart, rangeEnd };
|
|
107
|
+
}
|
|
68
108
|
async function collectEvents(opts) {
|
|
69
109
|
const { calendarUrl, serverUrl, username, rangeStart, rangeEnd, simplify, accept } = opts;
|
|
70
110
|
const fanOut = calendarUrl === '__ALL__';
|
|
@@ -122,6 +162,20 @@ class CalDav {
|
|
|
122
162
|
{
|
|
123
163
|
name: 'calDavApi',
|
|
124
164
|
required: true,
|
|
165
|
+
displayOptions: {
|
|
166
|
+
show: {
|
|
167
|
+
resource: ['calendar', 'event'],
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: 'icsFeedApi',
|
|
173
|
+
required: true,
|
|
174
|
+
displayOptions: {
|
|
175
|
+
show: {
|
|
176
|
+
resource: ['icsFeed'],
|
|
177
|
+
},
|
|
178
|
+
},
|
|
125
179
|
},
|
|
126
180
|
],
|
|
127
181
|
properties: [
|
|
@@ -133,6 +187,7 @@ class CalDav {
|
|
|
133
187
|
options: [
|
|
134
188
|
{ name: 'Calendar', value: 'calendar' },
|
|
135
189
|
{ name: 'Event', value: 'event' },
|
|
190
|
+
{ name: 'ICS Feed (Read-Only)', value: 'icsFeed' },
|
|
136
191
|
],
|
|
137
192
|
default: 'event',
|
|
138
193
|
},
|
|
@@ -140,6 +195,8 @@ class CalDav {
|
|
|
140
195
|
...CalendarDescription_1.calendarFields,
|
|
141
196
|
...EventDescription_1.eventOperations,
|
|
142
197
|
...EventDescription_1.eventFields,
|
|
198
|
+
...IcsFeedDescription_1.icsFeedOperations,
|
|
199
|
+
...IcsFeedDescription_1.icsFeedFields,
|
|
143
200
|
],
|
|
144
201
|
};
|
|
145
202
|
methods = {
|
|
@@ -181,7 +238,10 @@ class CalDav {
|
|
|
181
238
|
const returnData = [];
|
|
182
239
|
const resource = this.getNodeParameter('resource', 0);
|
|
183
240
|
const operation = this.getNodeParameter('operation', 0);
|
|
184
|
-
const creds = await this.getCredentials('calDavApi');
|
|
241
|
+
const creds = resource === 'icsFeed' ? {} : (await this.getCredentials('calDavApi'));
|
|
242
|
+
const feedCreds = resource === 'icsFeed'
|
|
243
|
+
? (await this.getCredentials('icsFeedApi'))
|
|
244
|
+
: undefined;
|
|
185
245
|
const serverUrl = creds.serverUrl;
|
|
186
246
|
const username = creds.username;
|
|
187
247
|
for (let i = 0; i < items.length; i++) {
|
|
@@ -286,43 +346,7 @@ class CalDav {
|
|
|
286
346
|
const returnAll = this.getNodeParameter('returnAll', i);
|
|
287
347
|
const limit = returnAll ? Infinity : this.getNodeParameter('limit', i);
|
|
288
348
|
const simplify = this.getNodeParameter('simplify', i, true);
|
|
289
|
-
|
|
290
|
-
let rangeEnd;
|
|
291
|
-
let accept;
|
|
292
|
-
if (operation === 'getNext') {
|
|
293
|
-
const lookaheadDays = this.getNodeParameter('lookaheadDays', i, 30);
|
|
294
|
-
if (!Number.isFinite(lookaheadDays) || lookaheadDays <= 0) {
|
|
295
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Lookahead Days must be a positive number, got ${lookaheadDays}.`, {
|
|
296
|
-
itemIndex: i,
|
|
297
|
-
description: 'A zero or negative window can never contain an event.',
|
|
298
|
-
});
|
|
299
|
-
}
|
|
300
|
-
rangeStart = new Date();
|
|
301
|
-
rangeEnd = new Date(rangeStart.getTime() + lookaheadDays * 24 * 60 * 60 * 1000);
|
|
302
|
-
const from = rangeStart;
|
|
303
|
-
const today = (0, GenericFunctions_1.localDateString)(from, this.getTimezone());
|
|
304
|
-
accept = (event) => {
|
|
305
|
-
if (!event.start)
|
|
306
|
-
return true;
|
|
307
|
-
if (event.allDay)
|
|
308
|
-
return event.end ? event.end > today : event.start >= today;
|
|
309
|
-
return new Date(event.start) >= from;
|
|
310
|
-
};
|
|
311
|
-
}
|
|
312
|
-
else {
|
|
313
|
-
rangeStart = readWindowBound.call(this, i, 'timeMin', 'Time Min');
|
|
314
|
-
rangeEnd = readWindowBound.call(this, i, 'timeMax', 'Time Max');
|
|
315
|
-
if (rangeEnd.getTime() <= rangeStart.getTime()) {
|
|
316
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Time Max must be after Time Min (got ${rangeStart.toISOString()} to ${rangeEnd.toISOString()}).`, {
|
|
317
|
-
itemIndex: i,
|
|
318
|
-
description: 'The window is empty or reversed, so it can never match an event. Check the order of the two fields.',
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
if (operation === 'search') {
|
|
322
|
-
const query = this.getNodeParameter('query', i);
|
|
323
|
-
accept = (event) => (0, GenericFunctions_1.eventMatchesText)(event, query);
|
|
324
|
-
}
|
|
325
|
-
}
|
|
349
|
+
const { rangeStart, rangeEnd, accept } = readWindow.call(this, i, operation);
|
|
326
350
|
const collected = await collectEvents.call(this, {
|
|
327
351
|
calendarUrl: calUrlNormalised,
|
|
328
352
|
serverUrl,
|
|
@@ -531,6 +555,48 @@ class CalDav {
|
|
|
531
555
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown event operation: ${operation}`);
|
|
532
556
|
}
|
|
533
557
|
}
|
|
558
|
+
else if (resource === 'icsFeed') {
|
|
559
|
+
if (!['getAll', 'getNext', 'search'].includes(operation)) {
|
|
560
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown ICS feed operation: ${operation}`, {
|
|
561
|
+
itemIndex: i,
|
|
562
|
+
description: 'A subscribed feed is read-only: only Get Many, Get Next and Search are available. Use the Event resource to write to a calendar.',
|
|
563
|
+
});
|
|
564
|
+
}
|
|
565
|
+
const currentFeedCreds = feedCreds;
|
|
566
|
+
const feedName = (currentFeedCreds.feedName ?? '').trim() || undefined;
|
|
567
|
+
let feedUrl;
|
|
568
|
+
try {
|
|
569
|
+
feedUrl = (0, IcsFeedFunctions_1.assertSafeFeedUrl)(String(currentFeedCreds.feedUrl ?? ''));
|
|
570
|
+
}
|
|
571
|
+
catch (err) {
|
|
572
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), err.message, {
|
|
573
|
+
itemIndex: i,
|
|
574
|
+
description: 'Open the ICS Feed credential and check the Feed URL. Only public HTTPS or webcal feeds on port 443 can be read.',
|
|
575
|
+
});
|
|
576
|
+
}
|
|
577
|
+
const returnAll = this.getNodeParameter('returnAll', i);
|
|
578
|
+
const limit = returnAll ? Infinity : this.getNodeParameter('limit', i);
|
|
579
|
+
const simplify = this.getNodeParameter('simplify', i, true);
|
|
580
|
+
const { rangeStart, rangeEnd, accept } = readWindow.call(this, i, operation);
|
|
581
|
+
let body;
|
|
582
|
+
try {
|
|
583
|
+
body = await IcsFeedFunctions_1.fetchIcsFeed.call(this, feedUrl);
|
|
584
|
+
}
|
|
585
|
+
catch (err) {
|
|
586
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), err.message, {
|
|
587
|
+
itemIndex: i,
|
|
588
|
+
});
|
|
589
|
+
}
|
|
590
|
+
const events = (0, IcsFeedFunctions_1.expandIcsFeed)(body, rangeStart, rangeEnd, this.getTimezone())
|
|
591
|
+
.filter((event) => !accept || accept(event))
|
|
592
|
+
.sort((a, b) => String(a.start ?? '').localeCompare(String(b.start ?? '')));
|
|
593
|
+
for (const event of events.slice(0, limit)) {
|
|
594
|
+
returnData.push({
|
|
595
|
+
json: (0, IcsFeedFunctions_1.toFeedEvent)(event, feedName, simplify),
|
|
596
|
+
pairedItem: { item: i },
|
|
597
|
+
});
|
|
598
|
+
}
|
|
599
|
+
}
|
|
534
600
|
else {
|
|
535
601
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown resource: ${resource}`);
|
|
536
602
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalDav.node.js","sourceRoot":"","sources":["../../../nodes/CalDav/CalDav.node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CalDav.node.js","sourceRoot":"","sources":["../../../nodes/CalDav/CalDav.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.icsFeedFields = exports.icsFeedOperations = void 0;
|
|
4
|
+
exports.icsFeedOperations = [
|
|
5
|
+
{
|
|
6
|
+
displayName: 'Operation',
|
|
7
|
+
name: 'operation',
|
|
8
|
+
type: 'options',
|
|
9
|
+
noDataExpression: true,
|
|
10
|
+
displayOptions: {
|
|
11
|
+
show: {
|
|
12
|
+
resource: ['icsFeed'],
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
options: [
|
|
16
|
+
{
|
|
17
|
+
name: 'Get Many',
|
|
18
|
+
value: 'getAll',
|
|
19
|
+
description: 'Get many events from the subscribed feed within a time window',
|
|
20
|
+
action: 'Get many feed events',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Get Next',
|
|
24
|
+
value: 'getNext',
|
|
25
|
+
description: 'Get the next upcoming event(s) in the feed, starting from now',
|
|
26
|
+
action: 'Get the next feed event',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'Search',
|
|
30
|
+
value: 'search',
|
|
31
|
+
description: 'Search feed events by keyword in title, description, or location',
|
|
32
|
+
action: 'Search feed events',
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
default: 'getAll',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
exports.icsFeedFields = [
|
|
39
|
+
{
|
|
40
|
+
displayName: 'Query',
|
|
41
|
+
name: 'query',
|
|
42
|
+
type: 'string',
|
|
43
|
+
required: true,
|
|
44
|
+
default: '',
|
|
45
|
+
placeholder: 'Ferien',
|
|
46
|
+
description: 'Text to search for. Matched case-insensitively against the event title (SUMMARY), description, location, and UID.',
|
|
47
|
+
displayOptions: {
|
|
48
|
+
show: {
|
|
49
|
+
resource: ['icsFeed'],
|
|
50
|
+
operation: ['search'],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
displayName: 'Lookahead Days',
|
|
56
|
+
name: 'lookaheadDays',
|
|
57
|
+
type: 'number',
|
|
58
|
+
typeOptions: { minValue: 1 },
|
|
59
|
+
default: 30,
|
|
60
|
+
description: 'How far into the future to look for the next event(s). 7 = next week, 30 = next month, 365 = next year. The window starts at the current time.',
|
|
61
|
+
displayOptions: {
|
|
62
|
+
show: {
|
|
63
|
+
resource: ['icsFeed'],
|
|
64
|
+
operation: ['getNext'],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
displayName: 'Simplify',
|
|
70
|
+
name: 'simplify',
|
|
71
|
+
type: 'boolean',
|
|
72
|
+
default: true,
|
|
73
|
+
description: 'Whether to return a simplified version of the response. When enabled the iCalendar source ("raw") is omitted, which keeps the output readable and — for a recurring series, where every occurrence repeats the same source — much smaller.',
|
|
74
|
+
displayOptions: {
|
|
75
|
+
show: {
|
|
76
|
+
resource: ['icsFeed'],
|
|
77
|
+
operation: ['getAll', 'getNext', 'search'],
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
displayName: 'Return All',
|
|
83
|
+
name: 'returnAll',
|
|
84
|
+
type: 'boolean',
|
|
85
|
+
default: false,
|
|
86
|
+
description: 'Whether to return all results or only up to a given limit',
|
|
87
|
+
displayOptions: {
|
|
88
|
+
show: {
|
|
89
|
+
resource: ['icsFeed'],
|
|
90
|
+
operation: ['getAll', 'getNext', 'search'],
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
displayName: 'Limit',
|
|
96
|
+
name: 'limit',
|
|
97
|
+
type: 'number',
|
|
98
|
+
default: 50,
|
|
99
|
+
typeOptions: { minValue: 1 },
|
|
100
|
+
description: 'Max number of results to return',
|
|
101
|
+
displayOptions: {
|
|
102
|
+
show: {
|
|
103
|
+
resource: ['icsFeed'],
|
|
104
|
+
operation: ['getAll', 'getNext', 'search'],
|
|
105
|
+
returnAll: [false],
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
displayName: 'Time Min',
|
|
111
|
+
name: 'timeMin',
|
|
112
|
+
type: 'dateTime',
|
|
113
|
+
required: true,
|
|
114
|
+
default: '={{ $now.startOf("day") }}',
|
|
115
|
+
description: 'Earliest event start time to return, in ISO 8601 format, e.g. "2026-04-20T00:00:00+02:00". The whole feed is downloaded and filtered here, because a feed serves one static file and cannot answer a query.',
|
|
116
|
+
displayOptions: {
|
|
117
|
+
show: {
|
|
118
|
+
resource: ['icsFeed'],
|
|
119
|
+
operation: ['getAll', 'search'],
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
displayName: 'Time Max',
|
|
125
|
+
name: 'timeMax',
|
|
126
|
+
type: 'dateTime',
|
|
127
|
+
required: true,
|
|
128
|
+
default: '={{ $now.plus(7, "days").endOf("day") }}',
|
|
129
|
+
description: 'Latest event start time to return, in ISO 8601 format, e.g. "2026-04-27T23:59:59+02:00". Must be after Time Min.',
|
|
130
|
+
displayOptions: {
|
|
131
|
+
show: {
|
|
132
|
+
resource: ['icsFeed'],
|
|
133
|
+
operation: ['getAll', 'search'],
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
];
|
|
138
|
+
//# sourceMappingURL=IcsFeedDescription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IcsFeedDescription.js","sourceRoot":"","sources":["../../../nodes/CalDav/IcsFeedDescription.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IDataObject, IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-workflow';
|
|
2
|
+
import { type CalDavEvent } from './GenericFunctions';
|
|
3
|
+
type FeedCtx = IExecuteFunctions | ILoadOptionsFunctions;
|
|
4
|
+
export declare const MAX_FEED_BYTES: number;
|
|
5
|
+
export declare const MAX_FEED_REDIRECTS = 3;
|
|
6
|
+
export declare function assertSafeFeedUrl(input: string, subject?: string): string;
|
|
7
|
+
export declare function fetchIcsFeed(this: FeedCtx, feedUrl: string): Promise<string>;
|
|
8
|
+
export declare function splitFeedObjects(body: string): string[];
|
|
9
|
+
export declare function eventInWindow(event: CalDavEvent, rangeStart: Date, rangeEnd: Date): boolean;
|
|
10
|
+
export declare function expandIcsFeed(body: string, rangeStart: Date, rangeEnd: Date, localZone?: string): CalDavEvent[];
|
|
11
|
+
export declare function toFeedEvent(event: CalDavEvent, feedName: string | undefined, simplify: boolean): IDataObject;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MAX_FEED_REDIRECTS = exports.MAX_FEED_BYTES = void 0;
|
|
7
|
+
exports.assertSafeFeedUrl = assertSafeFeedUrl;
|
|
8
|
+
exports.fetchIcsFeed = fetchIcsFeed;
|
|
9
|
+
exports.splitFeedObjects = splitFeedObjects;
|
|
10
|
+
exports.eventInWindow = eventInWindow;
|
|
11
|
+
exports.expandIcsFeed = expandIcsFeed;
|
|
12
|
+
exports.toFeedEvent = toFeedEvent;
|
|
13
|
+
const ical_js_1 = __importDefault(require("ical.js"));
|
|
14
|
+
const GenericFunctions_1 = require("./GenericFunctions");
|
|
15
|
+
exports.MAX_FEED_BYTES = 5 * 1024 * 1024;
|
|
16
|
+
exports.MAX_FEED_REDIRECTS = 3;
|
|
17
|
+
const FEED_TIMEOUT_MS = 30_000;
|
|
18
|
+
const REDIRECT_STATUS = new Set([301, 302, 303, 307, 308]);
|
|
19
|
+
const PRIVATE_TLDS = new Set([
|
|
20
|
+
'localhost',
|
|
21
|
+
'local',
|
|
22
|
+
'localdomain',
|
|
23
|
+
'internal',
|
|
24
|
+
'intranet',
|
|
25
|
+
'lan',
|
|
26
|
+
'home',
|
|
27
|
+
'corp',
|
|
28
|
+
'private',
|
|
29
|
+
'arpa',
|
|
30
|
+
]);
|
|
31
|
+
const HOST_LABEL = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;
|
|
32
|
+
const PUBLIC_TLD = /^[a-z][a-z0-9-]*$/;
|
|
33
|
+
function feedError(message) {
|
|
34
|
+
return new Error(message);
|
|
35
|
+
}
|
|
36
|
+
function assertSafeFeedUrl(input, subject = 'The Feed URL') {
|
|
37
|
+
const trimmed = String(input ?? '').trim();
|
|
38
|
+
if (!trimmed) {
|
|
39
|
+
throw feedError('No Feed URL is configured. Open the ICS Feed credential and paste the calendar\'s subscription link.');
|
|
40
|
+
}
|
|
41
|
+
const candidate = trimmed.replace(/^webcals?:\/\//i, 'https://');
|
|
42
|
+
if (!/^https:\/\//i.test(candidate)) {
|
|
43
|
+
throw feedError(`${subject} must be an HTTPS or webcal address. Other schemes are refused.`);
|
|
44
|
+
}
|
|
45
|
+
let url;
|
|
46
|
+
try {
|
|
47
|
+
url = new URL(candidate);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
throw feedError(`${subject} is not a valid URL.`);
|
|
51
|
+
}
|
|
52
|
+
if (url.protocol !== 'https:') {
|
|
53
|
+
throw feedError(`${subject} must be an HTTPS or webcal address. Other schemes are refused.`);
|
|
54
|
+
}
|
|
55
|
+
if (url.username || url.password) {
|
|
56
|
+
throw feedError(`${subject} must not contain a username or password. This node reads public feeds only.`);
|
|
57
|
+
}
|
|
58
|
+
if (url.port) {
|
|
59
|
+
throw feedError(`${subject} must use the standard HTTPS port 443.`);
|
|
60
|
+
}
|
|
61
|
+
if (!isPublicHostname(url.hostname)) {
|
|
62
|
+
throw feedError(`${subject} must name a public host. IP addresses and local or private network names are refused.`);
|
|
63
|
+
}
|
|
64
|
+
return url.toString();
|
|
65
|
+
}
|
|
66
|
+
function isPublicHostname(hostname) {
|
|
67
|
+
const host = hostname.toLowerCase();
|
|
68
|
+
if (!host || host.length > 253 || /[[\]:]/.test(host))
|
|
69
|
+
return false;
|
|
70
|
+
const labels = host.split('.');
|
|
71
|
+
if (labels.length < 2)
|
|
72
|
+
return false;
|
|
73
|
+
if (!labels.every((label) => label.length <= 63 && HOST_LABEL.test(label)))
|
|
74
|
+
return false;
|
|
75
|
+
const tld = labels[labels.length - 1];
|
|
76
|
+
if (!PUBLIC_TLD.test(tld))
|
|
77
|
+
return false;
|
|
78
|
+
return !PRIVATE_TLDS.has(tld);
|
|
79
|
+
}
|
|
80
|
+
const feedCache = new WeakMap();
|
|
81
|
+
async function fetchIcsFeed(feedUrl) {
|
|
82
|
+
const url = assertSafeFeedUrl(feedUrl);
|
|
83
|
+
let perContext = feedCache.get(this);
|
|
84
|
+
if (!perContext) {
|
|
85
|
+
perContext = new Map();
|
|
86
|
+
feedCache.set(this, perContext);
|
|
87
|
+
}
|
|
88
|
+
const cached = perContext.get(url);
|
|
89
|
+
if (cached)
|
|
90
|
+
return cached;
|
|
91
|
+
const pending = fetchIcsFeedUncached.call(this, url);
|
|
92
|
+
perContext.set(url, pending);
|
|
93
|
+
pending.catch(() => perContext.delete(url));
|
|
94
|
+
return pending;
|
|
95
|
+
}
|
|
96
|
+
function headerValue(headers, name) {
|
|
97
|
+
if (!headers)
|
|
98
|
+
return undefined;
|
|
99
|
+
const key = Object.keys(headers).find((h) => h.toLowerCase() === name);
|
|
100
|
+
if (!key)
|
|
101
|
+
return undefined;
|
|
102
|
+
const value = headers[key];
|
|
103
|
+
return Array.isArray(value) ? value[0] : value;
|
|
104
|
+
}
|
|
105
|
+
async function fetchIcsFeedUncached(startUrl) {
|
|
106
|
+
const origin = new URL(startUrl).origin;
|
|
107
|
+
let url = startUrl;
|
|
108
|
+
for (let hop = 0; hop <= exports.MAX_FEED_REDIRECTS; hop++) {
|
|
109
|
+
const response = await requestFeed.call(this, url);
|
|
110
|
+
const status = Number(response.statusCode);
|
|
111
|
+
if (REDIRECT_STATUS.has(status)) {
|
|
112
|
+
url = nextHop(headerValue(response.headers, 'location'), url, origin);
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (status < 200 || status >= 300)
|
|
116
|
+
throw statusError(status);
|
|
117
|
+
const declared = Number(headerValue(response.headers, 'content-length'));
|
|
118
|
+
if (Number.isFinite(declared) && declared > exports.MAX_FEED_BYTES)
|
|
119
|
+
throw tooLargeError();
|
|
120
|
+
const body = typeof response.body === 'string' ? response.body : String(response.body ?? '');
|
|
121
|
+
if (Buffer.byteLength(body, 'utf8') > exports.MAX_FEED_BYTES)
|
|
122
|
+
throw tooLargeError();
|
|
123
|
+
const text = body.replace(/^\ufeff/, '');
|
|
124
|
+
if (!/BEGIN:VCALENDAR/i.test(text)) {
|
|
125
|
+
throw feedError('The feed did not return an iCalendar document — no BEGIN:VCALENDAR in the response. ' +
|
|
126
|
+
'If the address opens a web page in a browser, copy the calendar\'s subscription (ICS) link instead.');
|
|
127
|
+
}
|
|
128
|
+
return text;
|
|
129
|
+
}
|
|
130
|
+
throw feedError(`The feed redirected more than ${exports.MAX_FEED_REDIRECTS} times, so the fetch was given up on.`);
|
|
131
|
+
}
|
|
132
|
+
function nextHop(location, current, origin) {
|
|
133
|
+
if (!location) {
|
|
134
|
+
throw feedError('The feed server sent a redirect without a destination.');
|
|
135
|
+
}
|
|
136
|
+
let resolved;
|
|
137
|
+
try {
|
|
138
|
+
resolved = new URL(location, current).toString();
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
throw feedError('The feed server redirected to an address that is not a valid URL.');
|
|
142
|
+
}
|
|
143
|
+
const checked = assertSafeFeedUrl(resolved, 'The redirect target');
|
|
144
|
+
if (new URL(checked).origin !== origin) {
|
|
145
|
+
throw feedError('The feed server redirected to a different origin. Only redirects that stay on the same host and port are followed.');
|
|
146
|
+
}
|
|
147
|
+
return checked;
|
|
148
|
+
}
|
|
149
|
+
async function requestFeed(url) {
|
|
150
|
+
const options = {
|
|
151
|
+
method: 'GET',
|
|
152
|
+
url,
|
|
153
|
+
headers: {
|
|
154
|
+
Accept: 'text/calendar, text/plain;q=0.5',
|
|
155
|
+
},
|
|
156
|
+
disableFollowRedirect: true,
|
|
157
|
+
returnFullResponse: true,
|
|
158
|
+
ignoreHttpStatusErrors: true,
|
|
159
|
+
json: false,
|
|
160
|
+
encoding: 'text',
|
|
161
|
+
timeout: FEED_TIMEOUT_MS,
|
|
162
|
+
};
|
|
163
|
+
try {
|
|
164
|
+
return (await this.helpers.httpRequest(options));
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
throw feedError(`The ICS feed could not be fetched: ${transportReason(error)}.`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function transportReason(error) {
|
|
171
|
+
const err = error;
|
|
172
|
+
const code = String(err?.code ?? err?.cause?.code ?? '');
|
|
173
|
+
if (/^(ENOTFOUND|EAI_AGAIN)$/.test(code))
|
|
174
|
+
return 'the feed host could not be resolved';
|
|
175
|
+
if (/^(ETIMEDOUT|ESOCKETTIMEDOUT|ECONNABORTED)$/.test(code)) {
|
|
176
|
+
return 'the feed server did not answer in time';
|
|
177
|
+
}
|
|
178
|
+
if (/^(ECONNREFUSED|ECONNRESET|EHOSTUNREACH|ENETUNREACH|EPIPE)$/.test(code)) {
|
|
179
|
+
return 'the connection to the feed server failed';
|
|
180
|
+
}
|
|
181
|
+
if (/^(CERT_|DEPTH_ZERO|SELF_SIGNED|UNABLE_TO_|ERR_TLS)/.test(code)) {
|
|
182
|
+
return 'the feed server\'s TLS certificate was rejected';
|
|
183
|
+
}
|
|
184
|
+
return 'the request did not complete';
|
|
185
|
+
}
|
|
186
|
+
function tooLargeError() {
|
|
187
|
+
return feedError('The feed is larger than the 5 MB this node reads. Narrow the subscription at the provider, or use the CalDAV resource, which asks the server for one time window at a time.');
|
|
188
|
+
}
|
|
189
|
+
function statusError(status) {
|
|
190
|
+
if (status === 401 || status === 403) {
|
|
191
|
+
return feedError(`The feed refused the request (HTTP ${status}). This node reads public feeds only and sends no credentials — use the CalDAV resource for a calendar that needs a login.`);
|
|
192
|
+
}
|
|
193
|
+
if (status === 404 || status === 410) {
|
|
194
|
+
return feedError(`The feed was not found (HTTP ${status}). Re-copy the subscription link from the provider; these often expire.`);
|
|
195
|
+
}
|
|
196
|
+
if (status === 429) {
|
|
197
|
+
return feedError('The feed server is rate-limiting this node (HTTP 429). Try again later.');
|
|
198
|
+
}
|
|
199
|
+
return feedError(`The feed request failed with HTTP ${status}.`);
|
|
200
|
+
}
|
|
201
|
+
const FEED_PRODID = '-//Daisytwo//n8n-nodes-caldav-pro//EN';
|
|
202
|
+
function splitFeedObjects(body) {
|
|
203
|
+
let comp;
|
|
204
|
+
try {
|
|
205
|
+
comp = new ical_js_1.default.Component(ical_js_1.default.parse(body));
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
throw feedError('The feed is not a valid iCalendar document and could not be parsed.');
|
|
209
|
+
}
|
|
210
|
+
const vevents = comp.getAllSubcomponents('vevent');
|
|
211
|
+
if (!vevents.length)
|
|
212
|
+
return [];
|
|
213
|
+
const zones = new Map();
|
|
214
|
+
for (const vtimezone of comp.getAllSubcomponents('vtimezone')) {
|
|
215
|
+
const tzid = vtimezone.getFirstPropertyValue('tzid');
|
|
216
|
+
if (tzid)
|
|
217
|
+
zones.set(String(tzid), vtimezone.toString());
|
|
218
|
+
}
|
|
219
|
+
const groups = new Map();
|
|
220
|
+
vevents.forEach((vevent, index) => {
|
|
221
|
+
const uid = vevent.getFirstPropertyValue('uid');
|
|
222
|
+
const key = uid ? String(uid) : `${index}`;
|
|
223
|
+
const existing = groups.get(key);
|
|
224
|
+
if (existing)
|
|
225
|
+
existing.push(vevent);
|
|
226
|
+
else
|
|
227
|
+
groups.set(key, [vevent]);
|
|
228
|
+
});
|
|
229
|
+
const objects = [];
|
|
230
|
+
for (const group of groups.values()) {
|
|
231
|
+
const tzids = new Set();
|
|
232
|
+
for (const vevent of group) {
|
|
233
|
+
for (const property of vevent.getAllProperties()) {
|
|
234
|
+
const tzid = property.getParameter('tzid');
|
|
235
|
+
if (tzid)
|
|
236
|
+
tzids.add(String(tzid));
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
objects.push([
|
|
240
|
+
'BEGIN:VCALENDAR',
|
|
241
|
+
'VERSION:2.0',
|
|
242
|
+
`PRODID:${FEED_PRODID}`,
|
|
243
|
+
...[...tzids].map((tzid) => zones.get(tzid)).filter(Boolean),
|
|
244
|
+
...group.map((vevent) => vevent.toString()),
|
|
245
|
+
'END:VCALENDAR',
|
|
246
|
+
].join('\r\n') + '\r\n');
|
|
247
|
+
}
|
|
248
|
+
return objects;
|
|
249
|
+
}
|
|
250
|
+
function eventInWindow(event, rangeStart, rangeEnd) {
|
|
251
|
+
const start = event.start ? Date.parse(event.start) : NaN;
|
|
252
|
+
if (!Number.isFinite(start))
|
|
253
|
+
return true;
|
|
254
|
+
const parsedEnd = event.end ? Date.parse(event.end) : NaN;
|
|
255
|
+
const end = Number.isFinite(parsedEnd) && parsedEnd > start ? parsedEnd : start + 1;
|
|
256
|
+
return end > rangeStart.getTime() && start < rangeEnd.getTime();
|
|
257
|
+
}
|
|
258
|
+
function expandIcsFeed(body, rangeStart, rangeEnd, localZone) {
|
|
259
|
+
const events = [];
|
|
260
|
+
for (const object of splitFeedObjects(body)) {
|
|
261
|
+
for (const event of (0, GenericFunctions_1.expandCalendarObject)(object, '', undefined, rangeStart, rangeEnd, localZone)) {
|
|
262
|
+
if (eventInWindow(event, rangeStart, rangeEnd))
|
|
263
|
+
events.push(event);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return events;
|
|
267
|
+
}
|
|
268
|
+
function toFeedEvent(event, feedName, simplify) {
|
|
269
|
+
const record = simplify ? { ...(0, GenericFunctions_1.simplifyEvent)(event) } : { ...event };
|
|
270
|
+
delete record.url;
|
|
271
|
+
delete record.etag;
|
|
272
|
+
return {
|
|
273
|
+
...record,
|
|
274
|
+
source: 'icsFeed',
|
|
275
|
+
...(feedName ? { feedName } : {}),
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=IcsFeedFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IcsFeedFunctions.js","sourceRoot":"","sources":["../../../nodes/CalDav/IcsFeedFunctions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-caldav-pro",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "n8n community node for CalDAV calendars (Infomaniak, NextCloud, iCloud, Fastmail). Usable as AI Agent tool.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
@@ -42,7 +42,8 @@
|
|
|
42
42
|
"n8n": {
|
|
43
43
|
"n8nNodesApiVersion": 1,
|
|
44
44
|
"credentials": [
|
|
45
|
-
"dist/credentials/CalDavApi.credentials.js"
|
|
45
|
+
"dist/credentials/CalDavApi.credentials.js",
|
|
46
|
+
"dist/credentials/IcsFeedApi.credentials.js"
|
|
46
47
|
],
|
|
47
48
|
"nodes": [
|
|
48
49
|
"dist/nodes/CalDav/CalDav.node.js"
|