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
package/README.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# n8n-nodes-calendly
|
|
2
|
+
|
|
3
|
+
A comprehensive n8n community node package for the **Calendly API v2**, covering all available endpoints. This package goes far beyond the built-in n8n Calendly trigger node by providing full read/write access to every Calendly resource.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
This package provides two nodes:
|
|
8
|
+
|
|
9
|
+
- **Calendly** — Action node with 11 resources and 40+ operations
|
|
10
|
+
- **Calendly Trigger** — Webhook trigger node that auto-registers and auto-deregisters subscriptions
|
|
11
|
+
|
|
12
|
+
### Resources and Operations
|
|
13
|
+
|
|
14
|
+
| Resource | Operations |
|
|
15
|
+
|---|---|
|
|
16
|
+
| **Scheduled Event** | Get, Get Many (with filters), Cancel |
|
|
17
|
+
| **Invitee** | Get, Get Many, Create (schedule a meeting), Mark No Show, Unmark No Show |
|
|
18
|
+
| **Event Type** | Get, Get Many, Get Available Times, Get Availability Schedules |
|
|
19
|
+
| **User** | Get Current, Get, List Org Memberships, Get Org Membership, Remove From Org |
|
|
20
|
+
| **Organization** | Get, List Invitations, Get Invitation, Invite User, Revoke Invitation |
|
|
21
|
+
| **Webhook Subscription** | Get, Get Many, Create, Delete |
|
|
22
|
+
| **Routing Form** | Get, Get Many, Get Submission, Get Many Submissions |
|
|
23
|
+
| **Scheduling Link** | Create Single-Use Link |
|
|
24
|
+
| **Group** | Get, Get Many, Get Relationship, List Relationships |
|
|
25
|
+
| **Activity Log** | Get Many (Enterprise only) |
|
|
26
|
+
| **Data Compliance** | Delete Invitee Data (GDPR/CCPA, Enterprise only) |
|
|
27
|
+
|
|
28
|
+
### Trigger Events
|
|
29
|
+
|
|
30
|
+
- `invitee.created` — New meeting booked
|
|
31
|
+
- `invitee.canceled` — Meeting canceled
|
|
32
|
+
- `invitee_no_show.created` — Invitee marked as no-show
|
|
33
|
+
- `invitee_no_show.deleted` — No-show mark removed
|
|
34
|
+
- `routing_form_submission.created` — Routing form submitted
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
### In n8n (self-hosted)
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# In your n8n installation directory
|
|
42
|
+
npm install n8n-nodes-calendly
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Or via the n8n UI: **Settings → Community Nodes → Install** → enter `n8n-nodes-calendly`.
|
|
46
|
+
|
|
47
|
+
### For development / local testing
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Clone the repo
|
|
51
|
+
git clone https://github.com/yourusername/n8n-nodes-calendly.git
|
|
52
|
+
cd n8n-nodes-calendly
|
|
53
|
+
|
|
54
|
+
# Install dependencies
|
|
55
|
+
pnpm install
|
|
56
|
+
|
|
57
|
+
# Build
|
|
58
|
+
pnpm run build
|
|
59
|
+
|
|
60
|
+
# Link to your local n8n
|
|
61
|
+
npm link
|
|
62
|
+
cd ~/.n8n/nodes # or your custom nodes directory
|
|
63
|
+
npm link n8n-nodes-calendly
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Authentication
|
|
67
|
+
|
|
68
|
+
This node uses a **Calendly Personal Access Token**.
|
|
69
|
+
|
|
70
|
+
1. Go to [Calendly Integrations](https://calendly.com/integrations/api_webhooks)
|
|
71
|
+
2. Click **API & Webhooks**
|
|
72
|
+
3. Generate a Personal Access Token
|
|
73
|
+
4. In n8n, create a new **Calendly API** credential and paste the token
|
|
74
|
+
|
|
75
|
+
## Usage Notes
|
|
76
|
+
|
|
77
|
+
### URIs vs UUIDs
|
|
78
|
+
|
|
79
|
+
Calendly API responses return full URIs like `https://api.calendly.com/users/AAAAAAAAAAAAAAAA`. This node accepts **both** full URIs and bare UUIDs in UUID fields — it automatically extracts the UUID from a full URI if one is provided.
|
|
80
|
+
|
|
81
|
+
### Pagination
|
|
82
|
+
|
|
83
|
+
All "Get Many" operations support a **Return All** toggle. When enabled, the node automatically follows all pagination pages and returns every item. When disabled, you can set a **Limit** (up to 100 per page).
|
|
84
|
+
|
|
85
|
+
### Scheduling Meetings (Create Invitee)
|
|
86
|
+
|
|
87
|
+
The new Calendly Scheduling API (released October 2025) allows you to book meetings programmatically. Use the **Invitee → Create** operation. You need:
|
|
88
|
+
- The event UUID (from an Event Type's available times)
|
|
89
|
+
- The invitee's name, email, and desired start time
|
|
90
|
+
|
|
91
|
+
### Trigger Node
|
|
92
|
+
|
|
93
|
+
The Calendly Trigger node automatically:
|
|
94
|
+
- Creates a webhook subscription in Calendly when the workflow is activated
|
|
95
|
+
- Deletes the subscription when the workflow is deactivated
|
|
96
|
+
- Supports both organization-wide and user-scoped subscriptions
|
|
97
|
+
|
|
98
|
+
## Development
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
pnpm install # install dependencies
|
|
102
|
+
pnpm run build # compile TypeScript
|
|
103
|
+
pnpm run dev # watch mode
|
|
104
|
+
pnpm run typecheck # type check only
|
|
105
|
+
pnpm run lint # lint
|
|
106
|
+
pnpm run lint:fix # lint + auto-fix
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## License
|
|
110
|
+
|
|
111
|
+
MIT
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class CalendlyApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
properties: INodeProperties[];
|
|
7
|
+
authenticate: IAuthenticateGeneric;
|
|
8
|
+
test: ICredentialTestRequest;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=CalendlyApi.credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendlyApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/CalendlyApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB,qBAAa,WAAY,YAAW,eAAe;IAClD,IAAI,SAAiB;IACrB,WAAW,SAAkB;IAC7B,gBAAgB,SAAoD;IACpE,UAAU,EAAE,eAAe,EAAE,CAW3B;IAEF,YAAY,EAAE,oBAAoB,CAOhC;IAEF,IAAI,EAAE,sBAAsB,CAK1B;CACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CalendlyApi = void 0;
|
|
4
|
+
class CalendlyApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'calendlyApi';
|
|
7
|
+
this.displayName = 'Calendly API';
|
|
8
|
+
this.documentationUrl = 'https://developer.calendly.com/getting-started';
|
|
9
|
+
this.properties = [
|
|
10
|
+
{
|
|
11
|
+
displayName: 'Personal Access Token',
|
|
12
|
+
name: 'apiKey',
|
|
13
|
+
type: 'string',
|
|
14
|
+
typeOptions: { password: true },
|
|
15
|
+
default: '',
|
|
16
|
+
required: true,
|
|
17
|
+
description: 'Your Calendly Personal Access Token. Generate one at https://calendly.com/integrations/api_webhooks',
|
|
18
|
+
},
|
|
19
|
+
];
|
|
20
|
+
this.authenticate = {
|
|
21
|
+
type: 'generic',
|
|
22
|
+
properties: {
|
|
23
|
+
headers: {
|
|
24
|
+
Authorization: '=Bearer {{$credentials.apiKey}}',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
this.test = {
|
|
29
|
+
request: {
|
|
30
|
+
baseURL: 'https://api.calendly.com',
|
|
31
|
+
url: '/users/me',
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.CalendlyApi = CalendlyApi;
|
|
37
|
+
//# sourceMappingURL=CalendlyApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendlyApi.credentials.js","sourceRoot":"","sources":["../../credentials/CalendlyApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,WAAW;IAAxB;QACC,SAAI,GAAG,aAAa,CAAC;QACrB,gBAAW,GAAG,cAAc,CAAC;QAC7B,qBAAgB,GAAG,gDAAgD,CAAC;QACpE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EACV,qGAAqG;aACtG;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,iCAAiC;iBAChD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,0BAA0B;gBACnC,GAAG,EAAE,WAAW;aAChB;SACD,CAAC;IACH,CAAC;CAAA;AAhCD,kCAgCC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class Calendly implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=Calendly.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Calendly.node.d.ts","sourceRoot":"","sources":["../../../nodes/Calendly/Calendly.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAGpB,MAAM,cAAc,CAAC;AAqBtB,qBAAa,QAAS,YAAW,SAAS;IACzC,WAAW,EAAE,oBAAoB,CAkE/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA+cvE"}
|