n8n-nodes-calendly 2.7.4
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/README.md +111 -0
- package/dist/credentials/CalendlyApi.credentials.d.ts +10 -0
- package/dist/credentials/CalendlyApi.credentials.d.ts.map +1 -0
- package/dist/credentials/CalendlyApi.credentials.js +37 -0
- package/dist/credentials/CalendlyApi.credentials.js.map +1 -0
- package/dist/nodes/Calendly/Calendly.node.d.ts +6 -0
- package/dist/nodes/Calendly/Calendly.node.d.ts.map +1 -0
- package/dist/nodes/Calendly/Calendly.node.js +561 -0
- package/dist/nodes/Calendly/Calendly.node.js.map +1 -0
- package/dist/nodes/Calendly/GenericFunctions.d.ts +19 -0
- package/dist/nodes/Calendly/GenericFunctions.d.ts.map +1 -0
- package/dist/nodes/Calendly/GenericFunctions.js +64 -0
- package/dist/nodes/Calendly/GenericFunctions.js.map +1 -0
- package/dist/nodes/Calendly/calendly.svg +10 -0
- package/dist/nodes/Calendly/descriptions/ActivityLogDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/ActivityLogDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/ActivityLogDescription.js +124 -0
- package/dist/nodes/Calendly/descriptions/ActivityLogDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/CustomApiCallDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/CustomApiCallDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/CustomApiCallDescription.js +127 -0
- package/dist/nodes/Calendly/descriptions/CustomApiCallDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/DataComplianceDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/DataComplianceDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/DataComplianceDescription.js +34 -0
- package/dist/nodes/Calendly/descriptions/DataComplianceDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/EventTypeDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/EventTypeDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/EventTypeDescription.js +167 -0
- package/dist/nodes/Calendly/descriptions/EventTypeDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/GroupDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/GroupDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/GroupDescription.js +98 -0
- package/dist/nodes/Calendly/descriptions/GroupDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/InviteeDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/InviteeDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/InviteeDescription.js +216 -0
- package/dist/nodes/Calendly/descriptions/InviteeDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/OrganizationDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/OrganizationDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/OrganizationDescription.js +145 -0
- package/dist/nodes/Calendly/descriptions/OrganizationDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/RoutingFormDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/RoutingFormDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/RoutingFormDescription.js +127 -0
- package/dist/nodes/Calendly/descriptions/RoutingFormDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/ScheduledEventDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/ScheduledEventDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/ScheduledEventDescription.js +165 -0
- package/dist/nodes/Calendly/descriptions/ScheduledEventDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/SchedulingLinkDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/SchedulingLinkDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/SchedulingLinkDescription.js +55 -0
- package/dist/nodes/Calendly/descriptions/SchedulingLinkDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/UserDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/UserDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/UserDescription.js +119 -0
- package/dist/nodes/Calendly/descriptions/UserDescription.js.map +1 -0
- package/dist/nodes/Calendly/descriptions/WebhookSubscriptionDescription.d.ts +4 -0
- package/dist/nodes/Calendly/descriptions/WebhookSubscriptionDescription.d.ts.map +1 -0
- package/dist/nodes/Calendly/descriptions/WebhookSubscriptionDescription.js +149 -0
- package/dist/nodes/Calendly/descriptions/WebhookSubscriptionDescription.js.map +1 -0
- package/dist/nodes/CalendlyTrigger/CalendlyTrigger.node.d.ts +13 -0
- package/dist/nodes/CalendlyTrigger/CalendlyTrigger.node.d.ts.map +1 -0
- package/dist/nodes/CalendlyTrigger/CalendlyTrigger.node.js +210 -0
- package/dist/nodes/CalendlyTrigger/CalendlyTrigger.node.js.map +1 -0
- package/dist/nodes/CalendlyTrigger/calendly.svg +10 -0
- package/dist/nodes/calendly.svg +10 -0
- package/package.json +63 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CalendlyTrigger = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const GenericFunctions_1 = require("../Calendly/GenericFunctions");
|
|
6
|
+
class CalendlyTrigger {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.description = {
|
|
9
|
+
displayName: 'Calendly Trigger',
|
|
10
|
+
name: 'calendlyTrigger',
|
|
11
|
+
icon: 'file:calendly.svg',
|
|
12
|
+
group: ['trigger'],
|
|
13
|
+
version: 1,
|
|
14
|
+
description: 'Starts the workflow when Calendly events occur — invitee created/canceled, no-shows, and routing form submissions',
|
|
15
|
+
defaults: {
|
|
16
|
+
name: 'Calendly Trigger',
|
|
17
|
+
},
|
|
18
|
+
inputs: [],
|
|
19
|
+
outputs: ['main'],
|
|
20
|
+
credentials: [
|
|
21
|
+
{
|
|
22
|
+
name: 'calendlyApi',
|
|
23
|
+
required: true,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
webhooks: [
|
|
27
|
+
{
|
|
28
|
+
name: 'default',
|
|
29
|
+
httpMethod: 'POST',
|
|
30
|
+
responseMode: 'onReceived',
|
|
31
|
+
path: 'webhook',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
properties: [
|
|
35
|
+
{
|
|
36
|
+
displayName: 'Scope',
|
|
37
|
+
name: 'scope',
|
|
38
|
+
type: 'options',
|
|
39
|
+
required: true,
|
|
40
|
+
options: [
|
|
41
|
+
{
|
|
42
|
+
name: 'Organization',
|
|
43
|
+
value: 'organization',
|
|
44
|
+
description: 'Receive events for all users in the organization',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'User',
|
|
48
|
+
value: 'user',
|
|
49
|
+
description: 'Receive events for the authenticated user only',
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
default: 'user',
|
|
53
|
+
description: 'The scope of events to receive',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
displayName: 'Events',
|
|
57
|
+
name: 'events',
|
|
58
|
+
type: 'multiOptions',
|
|
59
|
+
required: true,
|
|
60
|
+
options: [
|
|
61
|
+
{
|
|
62
|
+
name: 'Invitee Created',
|
|
63
|
+
value: 'invitee.created',
|
|
64
|
+
description: 'Triggers when a new event is scheduled by an invitee',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'Invitee Canceled',
|
|
68
|
+
value: 'invitee.canceled',
|
|
69
|
+
description: 'Triggers when an invitee cancels a scheduled event',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: 'Invitee No Show Created',
|
|
73
|
+
value: 'invitee_no_show.created',
|
|
74
|
+
description: 'Triggers when an invitee is marked as a no-show',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: 'Invitee No Show Deleted',
|
|
78
|
+
value: 'invitee_no_show.deleted',
|
|
79
|
+
description: 'Triggers when a no-show mark is removed from an invitee',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'Routing Form Submission Created',
|
|
83
|
+
value: 'routing_form_submission.created',
|
|
84
|
+
description: 'Triggers when a routing form is submitted',
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
default: ['invitee.created'],
|
|
88
|
+
description: 'The Calendly events to listen for',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
displayName: 'Options',
|
|
92
|
+
name: 'options',
|
|
93
|
+
type: 'collection',
|
|
94
|
+
placeholder: 'Add Option',
|
|
95
|
+
default: {},
|
|
96
|
+
options: [
|
|
97
|
+
{
|
|
98
|
+
displayName: 'Signing Key',
|
|
99
|
+
name: 'signingKey',
|
|
100
|
+
type: 'string',
|
|
101
|
+
typeOptions: { password: true },
|
|
102
|
+
default: '',
|
|
103
|
+
description: 'Optional signing key to verify webhook payloads. If set, n8n will validate the X-Calendly-Webhook-Signature header.',
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
};
|
|
109
|
+
this.webhookMethods = {
|
|
110
|
+
default: {
|
|
111
|
+
async checkExists() {
|
|
112
|
+
const webhookUrl = this.getNodeWebhookUrl('default');
|
|
113
|
+
const webhookData = this.getWorkflowStaticData('node');
|
|
114
|
+
if (webhookData.webhookId) {
|
|
115
|
+
try {
|
|
116
|
+
await GenericFunctions_1.calendlyApiRequest.call(this, 'GET', `/webhook_subscriptions/${webhookData.webhookId}`);
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
delete webhookData.webhookId;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Check if a subscription already exists for this URL
|
|
124
|
+
const currentUser = await GenericFunctions_1.calendlyApiRequest.call(this, 'GET', '/users/me');
|
|
125
|
+
const userResource = currentUser.resource;
|
|
126
|
+
const orgUri = userResource.current_organization;
|
|
127
|
+
const userUri = userResource.uri;
|
|
128
|
+
const scope = this.getNodeParameter('scope');
|
|
129
|
+
const qs = { organization: orgUri, scope };
|
|
130
|
+
if (scope === 'user')
|
|
131
|
+
qs.user = userUri;
|
|
132
|
+
const res = await GenericFunctions_1.calendlyApiRequest.call(this, 'GET', '/webhook_subscriptions', {}, qs);
|
|
133
|
+
const subscriptions = res.collection || [];
|
|
134
|
+
for (const sub of subscriptions) {
|
|
135
|
+
if (sub.callback_url === webhookUrl) {
|
|
136
|
+
webhookData.webhookId = sub.uri.split('/').pop();
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return false;
|
|
141
|
+
},
|
|
142
|
+
async create() {
|
|
143
|
+
const webhookUrl = this.getNodeWebhookUrl('default');
|
|
144
|
+
const webhookData = this.getWorkflowStaticData('node');
|
|
145
|
+
const events = this.getNodeParameter('events');
|
|
146
|
+
const scope = this.getNodeParameter('scope');
|
|
147
|
+
const options = this.getNodeParameter('options', {});
|
|
148
|
+
const currentUser = await GenericFunctions_1.calendlyApiRequest.call(this, 'GET', '/users/me');
|
|
149
|
+
const userResource = currentUser.resource;
|
|
150
|
+
const orgUri = userResource.current_organization;
|
|
151
|
+
const userUri = userResource.uri;
|
|
152
|
+
const body = {
|
|
153
|
+
url: webhookUrl,
|
|
154
|
+
events,
|
|
155
|
+
organization: orgUri,
|
|
156
|
+
scope,
|
|
157
|
+
};
|
|
158
|
+
if (scope === 'user') {
|
|
159
|
+
body.user = userUri;
|
|
160
|
+
}
|
|
161
|
+
if (options.signingKey) {
|
|
162
|
+
body.signing_key = options.signingKey;
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
const res = await GenericFunctions_1.calendlyApiRequest.call(this, 'POST', '/webhook_subscriptions', body);
|
|
166
|
+
const resource = res.resource;
|
|
167
|
+
webhookData.webhookId = resource.uri.split('/').pop();
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
async delete() {
|
|
175
|
+
const webhookData = this.getWorkflowStaticData('node');
|
|
176
|
+
if (webhookData.webhookId) {
|
|
177
|
+
try {
|
|
178
|
+
await GenericFunctions_1.calendlyApiRequest.call(this, 'DELETE', `/webhook_subscriptions/${webhookData.webhookId}`);
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
delete webhookData.webhookId;
|
|
184
|
+
}
|
|
185
|
+
return true;
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
async webhook() {
|
|
191
|
+
const bodyData = this.getBodyData();
|
|
192
|
+
const options = this.getNodeParameter('options', {});
|
|
193
|
+
// Optionally verify the webhook signature
|
|
194
|
+
if (options.signingKey) {
|
|
195
|
+
const headers = this.getHeaderData();
|
|
196
|
+
const signature = headers['x-calendly-webhook-signature'];
|
|
197
|
+
if (signature) {
|
|
198
|
+
// Signature format: "t=<timestamp>,v1=<hmac>"
|
|
199
|
+
// Full verification would require crypto — we surface the raw signature
|
|
200
|
+
// for users who want to verify it in a downstream Code node
|
|
201
|
+
bodyData.__signature = signature;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
workflowData: [this.helpers.returnJsonArray([bodyData])],
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
exports.CalendlyTrigger = CalendlyTrigger;
|
|
210
|
+
//# sourceMappingURL=CalendlyTrigger.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendlyTrigger.node.js","sourceRoot":"","sources":["../../../nodes/CalendlyTrigger/CalendlyTrigger.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
|
|
2
|
+
<!-- Outer dark blue C ring - gap at top right (~40deg to ~320deg) -->
|
|
3
|
+
<path d="M 83,32 A 40,40 0 1,0 83,68 L 75,62 A 29,29 0 1,1 75,38 Z" fill="#0055D4"/>
|
|
4
|
+
<!-- Middle bright blue C ring -->
|
|
5
|
+
<path d="M 79,35 A 34,34 0 1,0 79,65 L 71,59 A 23,23 0 1,1 71,41 Z" fill="#0082FF"/>
|
|
6
|
+
<!-- Inner cyan C ring -->
|
|
7
|
+
<path d="M 75,38 A 28,28 0 1,0 75,62 L 67,56 A 17,17 0 1,1 67,44 Z" fill="#00AAFF"/>
|
|
8
|
+
<!-- Innermost light cyan -->
|
|
9
|
+
<path d="M 71,41 A 22,22 0 1,0 71,59 L 63,53 A 12,12 0 1,1 63,47 Z" fill="#00CCFF"/>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
|
|
2
|
+
<!-- Outer dark blue C ring - gap at top right (~40deg to ~320deg) -->
|
|
3
|
+
<path d="M 83,32 A 40,40 0 1,0 83,68 L 75,62 A 29,29 0 1,1 75,38 Z" fill="#0055D4"/>
|
|
4
|
+
<!-- Middle bright blue C ring -->
|
|
5
|
+
<path d="M 79,35 A 34,34 0 1,0 79,65 L 71,59 A 23,23 0 1,1 71,41 Z" fill="#0082FF"/>
|
|
6
|
+
<!-- Inner cyan C ring -->
|
|
7
|
+
<path d="M 75,38 A 28,28 0 1,0 75,62 L 67,56 A 17,17 0 1,1 67,44 Z" fill="#00AAFF"/>
|
|
8
|
+
<!-- Innermost light cyan -->
|
|
9
|
+
<path d="M 71,41 A 22,22 0 1,0 71,59 L 63,53 A 12,12 0 1,1 63,47 Z" fill="#00CCFF"/>
|
|
10
|
+
</svg>
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-calendly",
|
|
3
|
+
"version": "2.7.4",
|
|
4
|
+
"description": "Comprehensive n8n community node for Calendly \u2014 covers all API v2 endpoints: Scheduled Events, Invitees, Event Types, Users, Organizations, Webhooks, Availability, Routing Forms, Scheduling Links, and more.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"n8n-community-node-package",
|
|
7
|
+
"n8n",
|
|
8
|
+
"calendly",
|
|
9
|
+
"scheduling",
|
|
10
|
+
"calendar",
|
|
11
|
+
"automation",
|
|
12
|
+
"appointments",
|
|
13
|
+
"booking"
|
|
14
|
+
],
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"homepage": "https://github.com/crm-kraft/n8n-nodes-calendly",
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "CRM Kraft"
|
|
19
|
+
},
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "https://github.com/crm-kraft/n8n-nodes-calendly.git"
|
|
23
|
+
},
|
|
24
|
+
"main": "index.js",
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc && npm run copy-icons",
|
|
27
|
+
"copy-icons": "copyfiles -u 2 \"nodes/Calendly/*.svg\" dist/nodes/ && cp dist/nodes/calendly.svg dist/nodes/Calendly/calendly.svg && cp dist/nodes/calendly.svg dist/nodes/CalendlyTrigger/calendly.svg",
|
|
28
|
+
"dev": "tsc --watch",
|
|
29
|
+
"format": "prettier nodes credentials --write",
|
|
30
|
+
"lint": "eslint nodes credentials package.json",
|
|
31
|
+
"lint:fix": "eslint nodes credentials package.json --fix",
|
|
32
|
+
"prepublishOnly": "npm run build",
|
|
33
|
+
"typecheck": "tsc --noEmit"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"dist"
|
|
37
|
+
],
|
|
38
|
+
"n8n": {
|
|
39
|
+
"n8nNodesApiVersion": 1,
|
|
40
|
+
"credentials": [
|
|
41
|
+
"dist/credentials/CalendlyApi.credentials.js"
|
|
42
|
+
],
|
|
43
|
+
"nodes": [
|
|
44
|
+
"dist/nodes/Calendly/Calendly.node.js",
|
|
45
|
+
"dist/nodes/CalendlyTrigger/CalendlyTrigger.node.js"
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/express": "^4.17.21",
|
|
50
|
+
"@types/node": "^20.11.5",
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
|
52
|
+
"@typescript-eslint/parser": "^6.19.0",
|
|
53
|
+
"copyfiles": "^2.4.1",
|
|
54
|
+
"eslint": "^8.56.0",
|
|
55
|
+
"eslint-plugin-n8n-nodes-base": "^1.16.2",
|
|
56
|
+
"n8n-workflow": "^1.24.0",
|
|
57
|
+
"prettier": "^3.2.4",
|
|
58
|
+
"typescript": "^5.3.3"
|
|
59
|
+
},
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"n8n-workflow": "*"
|
|
62
|
+
}
|
|
63
|
+
}
|