@henry2323/n8n-nodes-calendar-tool-wrapper 0.1.0 → 0.1.1

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.
@@ -0,0 +1,14 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ declare module 'n8n-workflow' {
3
+ interface INodeTypeDescription {
4
+ aiTool?: {
5
+ name: string;
6
+ description: string;
7
+ parametersSchema: Record<string, unknown>;
8
+ };
9
+ }
10
+ }
11
+ export declare class CalendarToolWrapperX implements INodeType {
12
+ description: INodeTypeDescription;
13
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
14
+ }
@@ -1,154 +1,137 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CalendarToolWrapperX = void 0;
4
- const n8n_workflow_1 = require("n8n-workflow");
5
- const subWorkflowTemplate = require("../../../../n8n-nodes-run-node-with-credentials/nodes/RunNodeWithCredentialsX/subWorkflowTemplate.json");
6
- class CalendarToolWrapperX {
7
- constructor() {
8
- // @ts-ignore - Adding custom aiTool property to type definition
9
- this.description = {
10
- displayName: 'Calendar Tool Wrapper X',
11
- name: 'calendarToolWrapperX',
12
- icon: 'file:RunKeys.svg',
13
- group: ['transform'],
14
- version: 1.1,
15
- description: 'Wraps Microsoft Calendar Tool for AI operations with credential injection',
16
- defaults: {
17
- name: 'Calendar Tool Wrapper X',
18
- color: '#772244',
19
- },
20
- inputs: [{
21
- type: "main" /* Main */
22
- }],
23
- outputs: [{
24
- type: "main" /* Main */
25
- },
26
- {
27
- type: "main" /* Main */,
28
- displayName: 'AI Tool'
29
- }],
30
- properties: [
31
- {
32
- displayName: 'Credentials ID',
33
- name: 'credentialsId',
34
- type: 'string',
35
- default: '',
36
- required: true,
37
- description: 'ID of credentials to inject',
38
- },
39
- {
40
- displayName: 'Calendar ID',
41
- name: 'calendarId',
42
- type: 'string',
43
- default: '',
44
- required: true,
45
- description: 'Target calendar ID for operations',
46
- },
47
- {
48
- displayName: 'Return All Events',
49
- name: 'returnAll',
50
- type: 'boolean',
51
- default: false,
52
- description: 'Whether to return all results or only first page',
53
- }
54
- ],
55
- aiTool: {
56
- name: 'calendarQuery',
57
- description: 'Query Microsoft Calendar events',
58
- parametersSchema: require('./calendarTool.schema.json')
59
- }
60
- };
61
- }
62
- async execute() {
63
- var _a, _b, _c, _d, _e, _f;
64
- const items = this.getInputData();
65
- try {
66
- const credentialsId = this.getNodeParameter('credentialsId', 0);
67
- const calendarId = this.getNodeParameter('calendarId', 0);
68
- const returnAll = this.getNodeParameter('returnAll', 0);
69
- // Configure calendar tool node
70
- const calendarNode = {
71
- type: 'n8n-nodes-base.microsoftOutlookTool',
72
- typeVersion: 2,
73
- position: [1000, 340],
74
- name: 'Microsoft_Calendar_Tool',
75
- credentials: {
76
- microsoftOutlookOAuth2Api: {
77
- id: credentialsId
78
- }
79
- },
80
- parameters: {
81
- resource: 'calendarEvent',
82
- operation: 'getAll',
83
- calendarId,
84
- returnAll,
85
- options: {
86
- fromAllCalendars: false
87
- }
88
- }
89
- };
90
- // Clone and configure workflow template
91
- const template = JSON.parse(JSON.stringify(subWorkflowTemplate));
92
- template.nodes.push(calendarNode);
93
- // Update connection references
94
- if ((_d = (_c = (_b = (_a = template.connections) === null || _a === void 0 ? void 0 : _a.Start) === null || _b === void 0 ? void 0 : _b.main) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d[0]) {
95
- template.connections.Start.main[0][0].node = calendarNode.name;
96
- }
97
- // Execute sub-workflow
98
- const workflowInfo = {
99
- code: template,
100
- };
101
- const executionResult = await this.executeWorkflow(workflowInfo, items);
102
- // Handle empty results
103
- if (!((_e = executionResult === null || executionResult === void 0 ? void 0 : executionResult.data) === null || _e === void 0 ? void 0 : _e[0])) {
104
- return [
105
- [],
106
- [{ json: { toolOutput: [] } }] // AI tool output
107
- ];
108
- }
109
- // Format AI tool output
110
- const toolOutput = executionResult.data[0].map((item) => ({
111
- eventId: item.json.id,
112
- summary: item.json.subject,
113
- start: item.json.start,
114
- end: item.json.end
115
- }));
116
- return [
117
- [],
118
- [{
119
- json: {
120
- tool: (_f = this.getNode().type.description.aiTool) === null || _f === void 0 ? void 0 : _f.name,
121
- parameters: { calendarId, returnAll },
122
- toolOutput
123
- }
124
- }]
125
- ];
126
- }
127
- catch (error) {
128
- if (this.continueOnFail()) {
129
- if (error instanceof Error) {
130
- error.context = { itemIndex: 0 };
131
- }
132
- return [
133
- [],
134
- [{
135
- json: {
136
- error: error.message,
137
- parameters: {
138
- calendarId: this.getNodeParameter('calendarId', 0),
139
- returnAll: this.getNodeParameter('returnAll', 0)
140
- }
141
- }
142
- }]
143
- ];
144
- }
145
- const errorContext = {
146
- nodeId: this.getNode().id,
147
- itemIndex: 0,
148
- workflowId: this.getWorkflow().id
149
- };
150
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, errorContext);
151
- }
152
- }
153
- }
154
- exports.CalendarToolWrapperX = CalendarToolWrapperX;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CalendarToolWrapperX = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const subWorkflowTemplate = require("./subWorkflowTemplate.json");
6
+ class CalendarToolWrapperX {
7
+ // @ts-ignore - Adding custom aiTool property to type definition
8
+ description = {
9
+ displayName: 'Calendar Tool Wrapper X',
10
+ name: 'calendarToolWrapperX',
11
+ icon: 'file:RunKeys.svg',
12
+ group: ['ai'],
13
+ version: 1.2,
14
+ description: 'Wraps Microsoft Calendar Tool for AI operations',
15
+ inputs: ['main'],
16
+ outputs: ['main'],
17
+ credentials: [
18
+ {
19
+ name: 'microsoftOutlookOAuth2Api',
20
+ required: true
21
+ }
22
+ ],
23
+ properties: [
24
+ {
25
+ displayName: 'Calendar ID',
26
+ name: 'calendarId',
27
+ type: 'string',
28
+ default: '',
29
+ required: true,
30
+ description: 'Target calendar ID for operations',
31
+ },
32
+ {
33
+ displayName: 'Return All Events',
34
+ name: 'returnAll',
35
+ type: 'boolean',
36
+ default: false,
37
+ description: 'Whether to return all results or only first page',
38
+ }
39
+ ],
40
+ aiTool: {
41
+ name: 'calendarQuery',
42
+ description: 'Query Microsoft Calendar events',
43
+ parametersSchema: require('./calendarTool.schema.json')
44
+ }
45
+ };
46
+ async execute() {
47
+ const items = this.getInputData();
48
+ try {
49
+ const credentialsId = this.getNodeParameter('credentialsId', 0);
50
+ const calendarId = this.getNodeParameter('calendarId', 0);
51
+ const returnAll = this.getNodeParameter('returnAll', 0);
52
+ // Configure calendar tool node
53
+ const calendarNode = {
54
+ type: 'n8n-nodes-base.microsoftOutlookTool',
55
+ typeVersion: 2,
56
+ position: [1000, 340],
57
+ name: 'Microsoft_Calendar_Tool',
58
+ credentials: {
59
+ microsoftOutlookOAuth2Api: {
60
+ id: credentialsId
61
+ }
62
+ },
63
+ parameters: {
64
+ resource: 'calendarEvent',
65
+ operation: 'getAll',
66
+ calendarId,
67
+ returnAll,
68
+ options: {
69
+ fromAllCalendars: false
70
+ }
71
+ }
72
+ };
73
+ // Clone and configure workflow template
74
+ const template = JSON.parse(JSON.stringify(subWorkflowTemplate));
75
+ template.nodes.push(calendarNode);
76
+ // Update connection references
77
+ if (template.connections?.Start?.main?.[0]?.[0]) {
78
+ template.connections.Start.main[0][0].node = calendarNode.name;
79
+ }
80
+ // Execute sub-workflow
81
+ const workflowInfo = {
82
+ code: template,
83
+ };
84
+ const executionResult = await this.executeWorkflow(workflowInfo, items);
85
+ // Handle empty results
86
+ if (!executionResult?.data?.[0]) {
87
+ return [
88
+ [], // Main output
89
+ [{ json: { toolOutput: [] } }] // AI tool output
90
+ ];
91
+ }
92
+ // Format AI tool output
93
+ const toolOutput = executionResult.data[0].map((item) => ({
94
+ eventId: item.json.id,
95
+ summary: item.json.subject,
96
+ start: item.json.start,
97
+ end: item.json.end
98
+ }));
99
+ return [
100
+ [], // Empty main output
101
+ [{
102
+ json: {
103
+ tool: this.getNode().type.description.aiTool?.name,
104
+ parameters: { calendarId, returnAll },
105
+ toolOutput
106
+ }
107
+ }]
108
+ ];
109
+ }
110
+ catch (error) {
111
+ if (this.continueOnFail()) {
112
+ if (error instanceof Error) {
113
+ error.context = { itemIndex: 0 };
114
+ }
115
+ return [
116
+ [],
117
+ [{
118
+ json: {
119
+ error: error.message,
120
+ parameters: {
121
+ calendarId: this.getNodeParameter('calendarId', 0),
122
+ returnAll: this.getNodeParameter('returnAll', 0)
123
+ }
124
+ }
125
+ }]
126
+ ];
127
+ }
128
+ const errorContext = {
129
+ nodeId: this.getNode().id,
130
+ itemIndex: 0,
131
+ workflowId: this.getWorkflow().id
132
+ };
133
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, errorContext);
134
+ }
135
+ }
136
+ }
137
+ exports.CalendarToolWrapperX = CalendarToolWrapperX;
@@ -0,0 +1,14 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="1.70666in" height="1.70666in" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" viewBox="0 0 1706.66 1706.66" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
2
+ <defs>
3
+ <style type="text/css">
4
+
5
+ .fil0 {fill:black}
6
+
7
+ </style>
8
+ </defs>
9
+ <g id="Layer_x0020_1">
10
+ <metadata id="CorelCorpID_0Corel-Layer"></metadata>
11
+ <path class="fil0" d="M506.04 1706.52c-5.14,0 -10.26,-1.97 -14.17,-5.9l-190.76 -191.56c-8.31,-8.34 -8.33,-32.94 0.04,-41.33l82.71 -82.71 -82.71 -82.69c-3.75,-3.76 -5.86,-8.84 -5.86,-14.15l0 -149.83c0,-5.31 2.11,-10.39 5.86,-14.15l82.71 -82.69 -82.71 -82.69c-3.75,-3.76 -5.86,-8.85 -5.86,-14.15l0 -148.86c-145.17,-84.38 -226.2,-246.4 -206.97,-413.17 24.46,-212.4 204.41,-372.59 418.56,-372.59 232.33,0 421.35,189.02 421.35,421.35 0,150.5 -80.08,289.06 -209.78,364.45l0 699.13c0,5.31 -2.11,10.41 -5.89,14.18l-192.41 191.57c-3.9,3.86 -9,5.8 -14.11,5.8zm82.03 -1159.54l-150.53 0c-29.43,0 -53.33,-23.89 -53.33,-53.33l0 -171.05c0,-29.43 23.89,-53.33 53.33,-53.33l150.53 0c29.43,0 53.33,23.89 53.33,53.33l0 171.05c0,29.44 -23.89,53.33 -53.33,53.33zm-23.83 904.15c-11.04,0 -20,-8.97 -20,-20l0 -612.91c0,-26.33 39.99,-26.33 39.99,0l0 612.91c0,11.03 -8.96,20 -20,20z" id="id_103" style="fill: rgb(148, 66, 189);"></path>
12
+ <path class="fil0" d="M1530.29 1529l-266.21 -71.24c-11.36,-3.07 -23.71,-24.37 -20.65,-35.8l30.27 -112.97 -112.98 -30.29c-5.11,-1.37 -9.5,-4.72 -12.13,-9.31l-74.92 -129.77c-2.65,-4.58 -3.37,-10.06 -2,-15.18l30.26 -112.96 -112.98 -30.29c-5.11,-1.38 -9.48,-4.72 -12.14,-9.32l-74.41 -128.92c-51.44,-0.18 -102.66,-9.86 -150.62,-28.31l0 -0.11c102.67,-65.66 173.75,-169.04 199.3,-286.05l80.46 -47.36c25.46,-14.69 34.22,-47.4 19.52,-72.86l-85.53 -148.14c-10.41,-18.03 -29.82,-27.67 -49.31,-26.56 -40.16,-82.76 -104.7,-151.6 -184.22,-197.11 193.13,-86.71 427.75,-13.59 536.31,174.41 75.26,130.34 75.19,290.36 0.56,420.52l349.59 605.5c2.65,4.6 3.37,10.08 1.98,15.22l-70.87 262.12c-2.4,8.9 -10.46,14.78 -19.28,14.78zm-46.7 -239.04c-6.9,0 -13.63,-3.59 -17.33,-10.02l-306.44 -530.78c-13.15,-22.81 21.46,-42.78 34.63,-20l306.44 530.79c7.74,13.42 -2.11,30 -17.3,30z" id="id_104" style="fill: rgb(107, 21, 150);"></path>
13
+ </g>
14
+ </svg>
@@ -0,0 +1,17 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "calendarId": {
5
+ "type": "string",
6
+ "title": "Calendar ID",
7
+ "description": "The ID of the calendar to query"
8
+ },
9
+ "returnAll": {
10
+ "type": "boolean",
11
+ "title": "Return All Events",
12
+ "description": "Whether to return all events or only up to a limit",
13
+ "default": false
14
+ }
15
+ },
16
+ "required": ["calendarId"]
17
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "nodes": [
3
+ {
4
+ "parameters": {},
5
+ "id": "dacc52e8-fef9-4cc3-9fca-623fa81b3c5f",
6
+ "name": "Start",
7
+ "type": "n8n-nodes-base.executeWorkflowTrigger",
8
+ "typeVersion": 1,
9
+ "position": [
10
+ 720,
11
+ 340
12
+ ]
13
+ }
14
+ ],
15
+ "settings":{
16
+ "saveManualExecutions":false,
17
+ "saveExecutionProgress":false,
18
+ "saveDataErrorExecution": "none",
19
+ "saveDataSuccessExecution": "none"
20
+ },
21
+ "connections": {
22
+ "Start": {
23
+ "main": [
24
+ [
25
+ {
26
+ "node": "",
27
+ "type": "main",
28
+ "index": 0
29
+ }
30
+ ]
31
+ ]
32
+ }
33
+ }
34
+ }
@@ -0,0 +1 @@
1
+ export {};
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const CalendarToolWrapperX_node_1 = require("./nodes/CalendarToolWrapperX/CalendarToolWrapperX.node");
4
+ module.exports = {
5
+ CalendarToolWrapperX: CalendarToolWrapperX_node_1.CalendarToolWrapperX
6
+ };
@@ -0,0 +1,14 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ declare module 'n8n-workflow' {
3
+ interface INodeTypeDescription {
4
+ aiTool?: {
5
+ name: string;
6
+ description: string;
7
+ parametersSchema: Record<string, unknown>;
8
+ };
9
+ }
10
+ }
11
+ export declare class CalendarToolWrapperX implements INodeType {
12
+ description: INodeTypeDescription;
13
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
14
+ }
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CalendarToolWrapperX = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const subWorkflowTemplate = require("./subWorkflowTemplate.json");
6
+ class CalendarToolWrapperX {
7
+ // @ts-ignore - Adding custom aiTool property to type definition
8
+ description = {
9
+ displayName: 'Calendar Tool Wrapper X',
10
+ name: 'calendarToolWrapperX',
11
+ icon: 'file:RunKeys.svg',
12
+ group: ['ai'],
13
+ version: 1.2,
14
+ description: 'Wraps Microsoft Calendar Tool for AI operations',
15
+ inputs: ['main'],
16
+ outputs: ['main'],
17
+ credentials: [
18
+ {
19
+ name: 'microsoftOutlookOAuth2Api',
20
+ required: true
21
+ }
22
+ ],
23
+ properties: [
24
+ {
25
+ displayName: 'Calendar ID',
26
+ name: 'calendarId',
27
+ type: 'string',
28
+ default: '',
29
+ required: true,
30
+ description: 'Target calendar ID for operations',
31
+ },
32
+ {
33
+ displayName: 'Return All Events',
34
+ name: 'returnAll',
35
+ type: 'boolean',
36
+ default: false,
37
+ description: 'Whether to return all results or only first page',
38
+ }
39
+ ],
40
+ aiTool: {
41
+ name: 'calendarQuery',
42
+ description: 'Query Microsoft Calendar events',
43
+ parametersSchema: require('./calendarTool.schema.json')
44
+ }
45
+ };
46
+ async execute() {
47
+ const items = this.getInputData();
48
+ try {
49
+ const credentialsId = this.getNodeParameter('credentialsId', 0);
50
+ const calendarId = this.getNodeParameter('calendarId', 0);
51
+ const returnAll = this.getNodeParameter('returnAll', 0);
52
+ // Configure calendar tool node
53
+ const calendarNode = {
54
+ type: 'n8n-nodes-base.microsoftOutlookTool',
55
+ typeVersion: 2,
56
+ position: [1000, 340],
57
+ name: 'Microsoft_Calendar_Tool',
58
+ credentials: {
59
+ microsoftOutlookOAuth2Api: {
60
+ id: credentialsId
61
+ }
62
+ },
63
+ parameters: {
64
+ resource: 'calendarEvent',
65
+ operation: 'getAll',
66
+ calendarId,
67
+ returnAll,
68
+ options: {
69
+ fromAllCalendars: false
70
+ }
71
+ }
72
+ };
73
+ // Clone and configure workflow template
74
+ const template = JSON.parse(JSON.stringify(subWorkflowTemplate));
75
+ template.nodes.push(calendarNode);
76
+ // Update connection references
77
+ if (template.connections?.Start?.main?.[0]?.[0]) {
78
+ template.connections.Start.main[0][0].node = calendarNode.name;
79
+ }
80
+ // Execute sub-workflow
81
+ const workflowInfo = {
82
+ code: template,
83
+ };
84
+ const executionResult = await this.executeWorkflow(workflowInfo, items);
85
+ // Handle empty results
86
+ if (!executionResult?.data?.[0]) {
87
+ return [
88
+ [], // Main output
89
+ [{ json: { toolOutput: [] } }] // AI tool output
90
+ ];
91
+ }
92
+ // Format AI tool output
93
+ const toolOutput = executionResult.data[0].map((item) => ({
94
+ eventId: item.json.id,
95
+ summary: item.json.subject,
96
+ start: item.json.start,
97
+ end: item.json.end
98
+ }));
99
+ return [
100
+ [], // Empty main output
101
+ [{
102
+ json: {
103
+ tool: this.getNode().type.description.aiTool?.name,
104
+ parameters: { calendarId, returnAll },
105
+ toolOutput
106
+ }
107
+ }]
108
+ ];
109
+ }
110
+ catch (error) {
111
+ if (this.continueOnFail()) {
112
+ if (error instanceof Error) {
113
+ error.context = { itemIndex: 0 };
114
+ }
115
+ return [
116
+ [],
117
+ [{
118
+ json: {
119
+ error: error.message,
120
+ parameters: {
121
+ calendarId: this.getNodeParameter('calendarId', 0),
122
+ returnAll: this.getNodeParameter('returnAll', 0)
123
+ }
124
+ }
125
+ }]
126
+ ];
127
+ }
128
+ const errorContext = {
129
+ nodeId: this.getNode().id,
130
+ itemIndex: 0,
131
+ workflowId: this.getWorkflow().id
132
+ };
133
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, errorContext);
134
+ }
135
+ }
136
+ }
137
+ exports.CalendarToolWrapperX = CalendarToolWrapperX;
@@ -0,0 +1,14 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="1.70666in" height="1.70666in" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" viewBox="0 0 1706.66 1706.66" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
2
+ <defs>
3
+ <style type="text/css">
4
+
5
+ .fil0 {fill:black}
6
+
7
+ </style>
8
+ </defs>
9
+ <g id="Layer_x0020_1">
10
+ <metadata id="CorelCorpID_0Corel-Layer"></metadata>
11
+ <path class="fil0" d="M506.04 1706.52c-5.14,0 -10.26,-1.97 -14.17,-5.9l-190.76 -191.56c-8.31,-8.34 -8.33,-32.94 0.04,-41.33l82.71 -82.71 -82.71 -82.69c-3.75,-3.76 -5.86,-8.84 -5.86,-14.15l0 -149.83c0,-5.31 2.11,-10.39 5.86,-14.15l82.71 -82.69 -82.71 -82.69c-3.75,-3.76 -5.86,-8.85 -5.86,-14.15l0 -148.86c-145.17,-84.38 -226.2,-246.4 -206.97,-413.17 24.46,-212.4 204.41,-372.59 418.56,-372.59 232.33,0 421.35,189.02 421.35,421.35 0,150.5 -80.08,289.06 -209.78,364.45l0 699.13c0,5.31 -2.11,10.41 -5.89,14.18l-192.41 191.57c-3.9,3.86 -9,5.8 -14.11,5.8zm82.03 -1159.54l-150.53 0c-29.43,0 -53.33,-23.89 -53.33,-53.33l0 -171.05c0,-29.43 23.89,-53.33 53.33,-53.33l150.53 0c29.43,0 53.33,23.89 53.33,53.33l0 171.05c0,29.44 -23.89,53.33 -53.33,53.33zm-23.83 904.15c-11.04,0 -20,-8.97 -20,-20l0 -612.91c0,-26.33 39.99,-26.33 39.99,0l0 612.91c0,11.03 -8.96,20 -20,20z" id="id_103" style="fill: rgb(148, 66, 189);"></path>
12
+ <path class="fil0" d="M1530.29 1529l-266.21 -71.24c-11.36,-3.07 -23.71,-24.37 -20.65,-35.8l30.27 -112.97 -112.98 -30.29c-5.11,-1.37 -9.5,-4.72 -12.13,-9.31l-74.92 -129.77c-2.65,-4.58 -3.37,-10.06 -2,-15.18l30.26 -112.96 -112.98 -30.29c-5.11,-1.38 -9.48,-4.72 -12.14,-9.32l-74.41 -128.92c-51.44,-0.18 -102.66,-9.86 -150.62,-28.31l0 -0.11c102.67,-65.66 173.75,-169.04 199.3,-286.05l80.46 -47.36c25.46,-14.69 34.22,-47.4 19.52,-72.86l-85.53 -148.14c-10.41,-18.03 -29.82,-27.67 -49.31,-26.56 -40.16,-82.76 -104.7,-151.6 -184.22,-197.11 193.13,-86.71 427.75,-13.59 536.31,174.41 75.26,130.34 75.19,290.36 0.56,420.52l349.59 605.5c2.65,4.6 3.37,10.08 1.98,15.22l-70.87 262.12c-2.4,8.9 -10.46,14.78 -19.28,14.78zm-46.7 -239.04c-6.9,0 -13.63,-3.59 -17.33,-10.02l-306.44 -530.78c-13.15,-22.81 21.46,-42.78 34.63,-20l306.44 530.79c7.74,13.42 -2.11,30 -17.3,30z" id="id_104" style="fill: rgb(107, 21, 150);"></path>
13
+ </g>
14
+ </svg>
@@ -0,0 +1,17 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "calendarId": {
5
+ "type": "string",
6
+ "title": "Calendar ID",
7
+ "description": "The ID of the calendar to query"
8
+ },
9
+ "returnAll": {
10
+ "type": "boolean",
11
+ "title": "Return All Events",
12
+ "description": "Whether to return all events or only up to a limit",
13
+ "default": false
14
+ }
15
+ },
16
+ "required": ["calendarId"]
17
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "nodes": [
3
+ {
4
+ "parameters": {},
5
+ "id": "dacc52e8-fef9-4cc3-9fca-623fa81b3c5f",
6
+ "name": "Start",
7
+ "type": "n8n-nodes-base.executeWorkflowTrigger",
8
+ "typeVersion": 1,
9
+ "position": [
10
+ 720,
11
+ 340
12
+ ]
13
+ }
14
+ ],
15
+ "settings":{
16
+ "saveManualExecutions":false,
17
+ "saveExecutionProgress":false,
18
+ "saveDataErrorExecution": "none",
19
+ "saveDataSuccessExecution": "none"
20
+ },
21
+ "connections": {
22
+ "Start": {
23
+ "main": [
24
+ [
25
+ {
26
+ "node": "",
27
+ "type": "main",
28
+ "index": 0
29
+ }
30
+ ]
31
+ ]
32
+ }
33
+ }
34
+ }
package/package.json CHANGED
@@ -1,52 +1,42 @@
1
1
  {
2
2
  "name": "@henry2323/n8n-nodes-calendar-tool-wrapper",
3
- "version": "0.1.0",
4
- "description": "Calendar Tool wrapper node for n8n",
3
+ "version": "0.1.1",
4
+ "type": "commonjs",
5
+ "engines": {
6
+ "node": ">=18.0.0"
7
+ },
8
+ "description": "Wrapper for Microsoft Calendar AI Tool integration",
5
9
  "keywords": [
6
10
  "n8n-community-node-package"
7
11
  ],
8
12
  "license": "MIT",
9
- "homepage": "",
10
- "author": {
11
- "name": "henry2323"
12
- },
13
- "private": false,
14
- "main": "index.js",
15
13
  "scripts": {
14
+ "clean": "rimraf dist",
16
15
  "build": "tsc",
17
16
  "dev": "tsc --watch",
18
- "format": "prettier nodes --write",
19
- "lint": "eslint nodes package.json",
20
- "lintfix": "eslint nodes package.json --fix",
21
- "prepublishOnly": "npm run build",
22
- "pretest": "npm run lint",
23
- "test": "jest"
17
+ "prepublishOnly": "npm run build"
24
18
  },
19
+ "author": "Henry",
20
+ "private": false,
21
+ "main": "dist/nodes/CalendarToolWrapperX/CalendarToolWrapperX.node.js",
22
+ "types": "dist/nodes/CalendarToolWrapperX/CalendarToolWrapperX.node.d.ts",
25
23
  "files": [
26
24
  "dist"
27
25
  ],
28
26
  "n8n": {
29
- "n8nNodesApiVersion": 1,
30
- "credentials": [],
27
+ "n8nNodesApiVersion": 2,
31
28
  "nodes": [
32
29
  "dist/nodes/CalendarToolWrapperX/CalendarToolWrapperX.node.js"
33
30
  ]
34
31
  },
35
32
  "dependencies": {
36
- "n8n-nodes-base": "^1.14.1"
33
+ "n8n-nodes-base": "^1.16.0",
34
+ "n8n-workflow": "^1.16.0",
35
+ "copyfiles": "^2.4.1"
37
36
  },
38
37
  "devDependencies": {
39
- "@types/express": "^4.17.6",
40
- "@types/jest": "^26.0.13",
41
- "@types/node": "^14.17.27",
42
- "@typescript-eslint/parser": "^5.29.0",
43
- "eslint-plugin-n8n-nodes-base": "^1.5.4",
44
- "gulp": "^5.0.0",
45
- "jest": "^29.7.0",
46
- "n8n-core": "^1.75.0",
47
- "n8n-workflow": "^1.70.0",
48
- "prettier": "^2.7.1",
49
- "ts-jest": "^29.2.5",
50
- "typescript": "~4.6.4"
38
+ "@types/node": "^20.11.0",
39
+ "typescript": "^5.3.3",
40
+ "rimraf": "^5.0.5"
51
41
  }
52
42
  }