@blickwerk/n8n-nodes-microsoft-planner 1.5.5 → 1.6.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.
Files changed (40) hide show
  1. package/LICENSE.md +21 -21
  2. package/README.md +527 -459
  3. package/dist/credentials/MicrosoftPlannerOAuth2Api.credentials.d.ts +2 -2
  4. package/dist/credentials/MicrosoftPlannerOAuth2Api.credentials.js +9 -28
  5. package/dist/credentials/MicrosoftPlannerOAuth2Api.credentials.js.map +1 -0
  6. package/dist/nodes/MicrosoftPlanner/BucketDescription.js +30 -23
  7. package/dist/nodes/MicrosoftPlanner/BucketDescription.js.map +1 -0
  8. package/dist/nodes/MicrosoftPlanner/CommentDescription.js +10 -14
  9. package/dist/nodes/MicrosoftPlanner/CommentDescription.js.map +1 -0
  10. package/dist/nodes/MicrosoftPlanner/GenericFunctions.d.ts +15 -18
  11. package/dist/nodes/MicrosoftPlanner/GenericFunctions.js +222 -70
  12. package/dist/nodes/MicrosoftPlanner/GenericFunctions.js.map +1 -0
  13. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.d.ts +6 -10
  14. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.js +100 -826
  15. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.js.map +1 -0
  16. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.json +18 -0
  17. package/dist/nodes/MicrosoftPlanner/PlanDescription.js +207 -57
  18. package/dist/nodes/MicrosoftPlanner/PlanDescription.js.map +1 -0
  19. package/dist/nodes/MicrosoftPlanner/SharedFields.d.ts +10 -0
  20. package/dist/nodes/MicrosoftPlanner/SharedFields.js +316 -0
  21. package/dist/nodes/MicrosoftPlanner/SharedFields.js.map +1 -0
  22. package/dist/nodes/MicrosoftPlanner/TaskDescription.d.ts +1 -1
  23. package/dist/nodes/MicrosoftPlanner/TaskDescription.js +226 -583
  24. package/dist/nodes/MicrosoftPlanner/TaskDescription.js.map +1 -0
  25. package/dist/nodes/MicrosoftPlanner/actions/bucket.d.ts +2 -0
  26. package/dist/nodes/MicrosoftPlanner/actions/bucket.js +72 -0
  27. package/dist/nodes/MicrosoftPlanner/actions/bucket.js.map +1 -0
  28. package/dist/nodes/MicrosoftPlanner/actions/comment.d.ts +2 -0
  29. package/dist/nodes/MicrosoftPlanner/actions/comment.js +100 -0
  30. package/dist/nodes/MicrosoftPlanner/actions/comment.js.map +1 -0
  31. package/dist/nodes/MicrosoftPlanner/actions/plan.d.ts +4 -0
  32. package/dist/nodes/MicrosoftPlanner/actions/plan.js +116 -0
  33. package/dist/nodes/MicrosoftPlanner/actions/plan.js.map +1 -0
  34. package/dist/nodes/MicrosoftPlanner/actions/task.d.ts +4 -0
  35. package/dist/nodes/MicrosoftPlanner/actions/task.js +392 -0
  36. package/dist/nodes/MicrosoftPlanner/actions/task.js.map +1 -0
  37. package/dist/nodes/MicrosoftPlanner/planner.svg +51 -51
  38. package/dist/package.json +60 -0
  39. package/dist/tsconfig.tsbuildinfo +1 -0
  40. package/package.json +60 -63
package/README.md CHANGED
@@ -1,459 +1,527 @@
1
- # n8n-nodes-microsoft-planner
2
-
3
- This is an n8n community node that allows you to interact with Microsoft Planner in your n8n workflows.
4
-
5
- [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
6
-
7
- [Microsoft Planner](https://www.microsoft.com/en-us/microsoft-365/business/task-management-software) is a task management tool that helps teams organize, assign, and collaborate on tasks.
8
-
9
- ## Installation
10
-
11
- Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
12
-
13
- ### Community Node
14
-
15
- 1. Go to **Settings > Community Nodes** in your n8n instance
16
- 2. Select **Install**
17
- 3. Enter `@blickwerk/n8n-nodes-microsoft-planner` in **Enter npm package name**
18
- 4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes
19
- 5. Select **Install**
20
-
21
- After installing the node, you can use it like any other node in your workflows.
22
-
23
- ### Manual Installation
24
-
25
- To install manually:
26
-
27
- ```bash
28
- npm install @blickwerk/n8n-nodes-microsoft-planner
29
- ```
30
-
31
- ## Prerequisites
32
-
33
- You need to have:
34
- - An active Microsoft 365 subscription
35
- - A Microsoft Planner plan created
36
- - Azure AD App Registration with the following API permissions:
37
- - `Tasks.ReadWrite` - Read and write tasks
38
- - `Group.ReadWrite.All` - Read and write all groups (required for Planner and comments)
39
- - `User.Read.All` - Read all users (required for user assignment by email)
40
-
41
- ## Setting up Azure AD App
42
-
43
- 1. Go to [Azure Portal](https://portal.azure.com/)
44
- 2. Navigate to **Azure Active Directory > App registrations**
45
- 3. Click **New registration**
46
- 4. Give it a name (e.g., "n8n Microsoft Planner Integration")
47
- 5. Select **Accounts in this organizational directory only**
48
- 6. Add redirect URI: `https://your-n8n-instance.com/rest/oauth2-credential/callback`
49
- 7. Click **Register**
50
-
51
- ### Configure API Permissions
52
-
53
- 1. Go to **API permissions**
54
- 2. Click **Add a permission**
55
- 3. Select **Microsoft Graph**
56
- 4. Select **Delegated permissions**
57
- 5. Add the following permissions:
58
- - `Tasks.ReadWrite` - Read and write tasks
59
- - `Group.ReadWrite.All` - Read and write all groups (required for Planner and comments)
60
- - `User.Read.All` - Read all users' basic profiles (required for user assignment)
61
- 6. Click **Grant admin consent**
62
-
63
- **Note**: The `User.Read.All` permission is required if you want to assign tasks to users by email address. The `Group.ReadWrite.All` permission is required for both Planner operations and creating/reading comments.
64
-
65
- ### Create Client Secret
66
-
67
- 1. Go to **Certificates & secrets**
68
- 2. Click **New client secret**
69
- 3. Add a description and select expiration
70
- 4. Copy the **Value** (you won't see it again!)
71
-
72
- ### Get Application Details
73
-
74
- - **Client ID**: Found on the app overview page
75
- - **Client Secret**: The value you copied in the previous step
76
-
77
- ## Credentials
78
-
79
- Configure the Microsoft Planner OAuth2 API credentials in n8n:
80
-
81
- 1. In n8n, go to **Credentials > New**
82
- 2. Search for **Microsoft Planner OAuth2 API**
83
- 3. Enter your **Client ID** and **Client Secret**
84
- 4. Click **Connect my account**
85
- 5. Complete the OAuth flow
86
-
87
- ## Features
88
-
89
- - **Resource Locator UI**: Choose between "From List" (dropdown) or "By ID" (manual input) for Buckets
90
- - **User Assignment**: Assign tasks to users by email address
91
- - **Priority Management**: Easy-to-use priority dropdown (Urgent, Important, Medium, Low)
92
- - **Comprehensive Task Support**: Full support for Task details including Checklist items and Attachments
93
- - **Full CRUD Support**: Manage Tasks, Plans, and Buckets
94
- - **Comment Support**: Create and retrieve comments on tasks
95
-
96
- ## Operations
97
-
98
- ### Task
99
-
100
- - **Create** - Create a new task (supports Checklist and Attachments)
101
- - **Get** - Get a task by ID (optionally include details)
102
- - **Get Many** - Get multiple tasks from a plan or bucket
103
- - **Update** - Update an existing task (supports Checklist and Attachments)
104
- - **Delete** - Delete a task
105
- - **Get Files** - Get all files attached to a task
106
-
107
- ### Plan
108
-
109
- - **Create** - Create a new plan in a group
110
- - **Get** - Get a plan by ID (optionally include details)
111
- - **Get Many** - Get all plans (My Plans or Group Plans)
112
- - **Update** - Update a plan (supports Title, Category Labels, and Sharing)
113
- - **Delete** - Delete a plan
114
-
115
- ### Bucket
116
-
117
- - **Create** - Create a new bucket in a plan
118
- - **Get** - Get a bucket by ID
119
- - **Get Many** - Get all buckets in a plan
120
- - **Update** - Update a bucket title and order
121
- - **Delete** - Delete a bucket
122
-
123
- ### Comment
124
-
125
- - **Create** - Create a new comment on a task
126
- - **Get Many** - Get all comments from a task
127
-
128
- ## Usage
129
-
130
- ### Creating a Task
131
-
132
- To create a task:
133
- 1. Enter the **Plan ID** (you can find this in Microsoft Planner URL or via Graph Explorer)
134
- 2. Select a **Bucket** from the dropdown (loads automatically based on the Plan ID)
135
- 3. Enter the **Title** of the task
136
-
137
- Optional fields:
138
- - **Description**: Detailed task description
139
- - **Priority**: Select from dropdown
140
- - Urgent (highest priority)
141
- - Important
142
- - Medium (default)
143
- - Low
144
- - **Assigned To**: Comma-separated list of user emails (e.g., `user1@domain.com, user2@domain.com`)
145
- - **Due Date Time**: When the task should be completed
146
- - **Start Date Time**: When work on the task should begin
147
- - **Percent Complete**: Task completion percentage (0-100)
148
- - **Checklist**: Add multiple checklist items with titles and checked status
149
- - **Attachments**: Add external references/attachments with URLs, aliases, and types (Word, Excel, etc.)
150
- - **Description**: Detailed task description (stored in task details)
151
-
152
- ### Getting Tasks
153
-
154
- **Get a single task:**
155
- - Enter the **Task ID** manually (no dropdown available for single task lookups)
156
-
157
- **Get many tasks:**
158
- - Choose filter type: **Plan** or **Bucket**
159
- - Enter the **Plan ID**
160
- - If filtering by Bucket: Select bucket from dropdown or enter Bucket ID manually
161
- - Set a limit or return all tasks
162
-
163
- ### Updating a Task
164
-
165
- To update a task:
166
- 1. Enter the **Task ID** manually
167
- 2. Update any of these fields:
168
- - Title
169
- - Description
170
- - Priority (via dropdown)
171
- - Assigned users (via email list)
172
- - **Due Date Time**
173
- - **Start Date Time**
174
- - **Percent Complete**
175
- - **Move to different bucket**
176
- - **Checklist**: Add new items or update existing ones (supports "Replace All" mode)
177
- - **Attachments**: Add new references (supports "Replace All" mode)
178
- - **Description**: Update the task description
179
-
180
- ### Getting Files from a Task
181
-
182
- To get all files attached to a task:
183
- 1. Enter the **Task ID** manually
184
- 2. The operation returns:
185
- - **taskId**: The task ID
186
- - **fileCount**: Number of attached files
187
- - **files**: Array of file objects with:
188
- - **url**: Decoded SharePoint URL (ready to use)
189
- - **alias**: Display name of the file
190
- - **type**: File type (e.g., PowerPoint, Word, Excel, PDF, Other)
191
- - **previewPriority**: Priority for preview display
192
- - **lastModifiedDateTime**: When the file reference was last modified
193
- - **lastModifiedBy**: Who last modified the reference
194
-
195
- ### Creating a Comment
196
-
197
- To create a comment on a task:
198
- 1. Select **Comment** as the resource
199
- 2. Choose **Create** operation
200
- 3. Enter the **Task ID** manually
201
- 4. Enter the **Content** of the comment
202
- 5. Optionally select **Content Type**:
203
- - **Text** (default): Plain text that will be wrapped in HTML
204
- - **HTML**: Custom HTML content
205
-
206
- The comment will be created as a conversation thread in the Microsoft 365 Group associated with the plan. If the task doesn't have a conversation thread yet, one will be created automatically.
207
-
208
- ### Getting Comments from a Task
209
-
210
- To get all comments from a task:
211
- 1. Select **Comment** as the resource
212
- 2. Choose **Get Many** operation
213
- 3. Enter the **Task ID** manually
214
- 4. The operation returns:
215
- - **taskId**: The task ID
216
- - **commentCount**: Number of comments
217
- - **comments**: Array of comment objects with:
218
- - **id**: Comment ID
219
- - **content**: Comment body (HTML)
220
- - **from**: Author information
221
- - **createdDateTime**: When the comment was created
222
- - **lastModifiedDateTime**: When the comment was last modified
223
-
224
- **Note**: Once a comment is posted in Planner, it cannot be deleted or edited via the Microsoft Graph API or the Planner UI (for Basic plans). This is a limitation of the Microsoft 365 Groups conversation system that Planner uses.
225
-
226
- ### Working with Plans
227
-
228
- The **Plan** resource allows you to manage Microsoft Planner plans:
229
-
230
- - **Create**: Requires an **Owner Group** (selected from dropdown or entered as ID) and a **Title**.
231
- - **Get Many**:
232
- - **My Plans**: Lists plans the authenticated user is a member of.
233
- - **Group Plans**: Requires a **Group ID** to list plans owned by that specific group.
234
- - **Get**: Retrieve full plan metadata. Enable **Include Details** to get category descriptions (labels) and other metadata.
235
- - **Update**:
236
- - Change the plan **Title**.
237
- - **Category Descriptions**: Update the labels for the 25 color-coded categories (Category 1-25).
238
- - **Shared With**: Update plan members using a JSON mapping of user IDs.
239
- - **Delete**: Permanently removes the plan.
240
-
241
- ### Working with Buckets
242
-
243
- The **Bucket** resource manages the columns or categories within a plan:
244
-
245
- - **Create**: Requires a **Plan ID** and a **Name**.
246
- - **Upsert**: When enabled, the node will check if a bucket with the same name already exists in the plan and return that instead of creating a duplicate.
247
- - **Get Many**: Lists all buckets within a specific **Plan ID**.
248
- - **Update**: Change the bucket **Name** and its **Order Hint** (controlling the position in the UI).
249
- - **Delete**: Removes the bucket from the plan.
250
-
251
- ### How to Find Plan IDs
252
-
253
- You can find your Plan ID in several ways:
254
-
255
- 1. **From Planner URL**: Open Microsoft Planner in browser, the URL contains the Plan ID:
256
- ```
257
- https://tasks.office.com/.../ planId=YOUR_PLAN_ID_HERE /...
258
- ```
259
-
260
- 2. **Via Microsoft Graph Explorer**:
261
- - Go to https://developer.microsoft.com/graph/graph-explorer
262
- - Sign in
263
- - Run: `GET /me/planner/plans`
264
- - Copy the `id` field from the plan you want
265
-
266
- ### Resource Locator (From List / By ID)
267
-
268
- When creating tasks or filtering by bucket:
269
- - **From List**: Select from dropdown (automatically loads based on Plan ID)
270
- - **By ID**: Manually enter the ID if you already know it
271
-
272
- For Get/Update/Delete operations, you need to manually enter the Task ID.
273
-
274
- ## Compatibility
275
-
276
- Tested with n8n version 1.0.0 and above.
277
-
278
- ## Resources
279
-
280
- - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
281
- - [Microsoft Graph Planner API documentation](https://docs.microsoft.com/en-us/graph/api/resources/planner-overview)
282
- - [Microsoft Graph Explorer](https://developer.microsoft.com/en-us/graph/graph-explorer)
283
-
284
- ## Version History
285
-
286
- ### 1.5.5
287
- - **Bug Fix: $select Duplication**
288
- - Fixed an issue where the `$select` query parameter was sent twice during pagination, causing "Query option '$select' was specified more than once" error.
289
-
290
-
291
- ### 1.5.4
292
- - **New Feature: $select Support**
293
- - Added "Select Properties" field to "Get Many" operations for Tasks, Plans, Buckets, and Comments.
294
- - **Improved Task Assignments**
295
- - Fixed silent failures for task assignments.
296
- - Added robust user lookup (ID, Email, UPN) and error reporting for missing users.
297
- - Added support for Array inputs (expressions) in the "Assigned To" field.
298
-
299
-
300
- ### 1.5.3
301
- - **UI Improvements for Attachments and Checklists**
302
- - Refactored to use a grouped UI pattern for better usability
303
- - Replaced separate fields with a unified structure using `fixedCollection`
304
- - **Updated Logic for Updates**
305
- - Replaced "Replace All" toggle with a clearer **Operation Mode** dropdown (Append vs Replace)
306
- - Renamed "Mode" to "Input Mode" for better clarity between Manual and JSON inputs
307
- - Fixed logic for replacing items with matching IDs during updates
308
-
309
-
310
- ### 1.5.2
311
- - **Maintenance release**
312
- - Removed runtime dependency on `n8n-core` to comply with n8n community node requirements
313
- - No functional changes to node behavior
314
-
315
- ### 1.5.1
316
- - **Maintenance release**
317
- - Replaced deprecated `requestOAuth2` helper with `httpRequestWithAuthentication` in Microsoft Planner API requests
318
- - Removed `console` logging from the Microsoft Planner node and helper to satisfy n8n community package scan requirements
319
-
320
- ### 1.5.0
321
- - **Major feature release** (with contributions from United Workspace GmbH)
322
- - **Added Comment Support**
323
- - Create and retrieve comments on Planner tasks
324
- - Automatic conversation thread management
325
- - Support for both HTML and plain text comments
326
- - **Enhanced Task Details**
327
- - **Checklist Support**: Full support for adding and managing checklist items
328
- - **Attachments (References)**: Support for adding external URLs and files to tasks
329
- - **Replace All Options**: New toggles to replace existing checklists or attachments entirely
330
- - **Plan Resource Support**
331
- - CRUD operations for Plans
332
- - Manage Category Labels (1-25)
333
- - Manage Plan members (Shared With)
334
- - **Bucket Resource Support**
335
- - CRUD operations for Buckets
336
- - Manage bucket names and positioning (Order Hint)
337
- - **Robust Encoding**: Improved handling of special characters in attachment URLs
338
- - **Internal Improvements**: Comprehensive build audit, improved error handling and data fetch reliability
339
-
340
- ### 1.4.0
341
- - **Updated branding**
342
- - New Planner icon/logo
343
- - Added About Blickwerk Media section with company info and social links
344
-
345
- ### 1.3.9
346
- - **Added Get Files operation**
347
- - Retrieve all files attached to a task
348
- - URLs are properly decoded for direct use
349
- - Returns file metadata including alias, type, and last modified info
350
-
351
- ### 1.3.8
352
- - **Fixed priority values**
353
- - Corrected priority mapping: Urgent (1), Important (3), Medium (5), Low (9)
354
- - Priority values now match Microsoft Planner API specifications
355
-
356
- ### 1.3.7
357
- - **Fixed Update Task response handling**
358
- - Fetch complete updated task data after PATCH operation
359
- - Always returns full task object with all current values
360
- - Fixes empty array and undefined description issues
361
-
362
- ### 1.3.6
363
- - **Improved Update Task response**
364
- - Update Task now returns complete task data including description
365
- - Better user experience with full task details in response
366
-
367
- ### 1.3.5
368
- - **Documentation update**
369
- - Synced README with npm package (no code changes)
370
-
371
- ### 1.3.4
372
- - **Fixed "Empty Payload" error in Update Task**
373
- - Update Task now works correctly even when no fields are selected
374
- - Only sends PATCH request when there are actual fields to update
375
- - Improved error handling for update operations
376
-
377
- ### 1.3.3
378
- - **Restructured Get Many Tasks for better UX**
379
- - Added "Filter By" dropdown to choose between Plan or Bucket filtering
380
- - Plan ID and Bucket are now separate fields (not in collection)
381
- - Bucket dropdown now properly loads when Plan ID is entered
382
- - Simplified Get/Update/Delete Task to use "By ID" only (no dropdown)
383
- - Resource Locator UI for buckets with "From List" / "By ID" toggle
384
-
385
- ### 1.3.0 - 1.3.2
386
- - Added resource locator UI for Buckets and Tasks
387
- - Converted from loadOptions to listSearch methods
388
- - Various fixes for dropdown loading issues
389
-
390
- ### 1.2.4
391
- - **Fixed Bucket and Task dropdowns not showing!**
392
- - Changed field type from 'string' back to 'options' for proper dropdown display
393
- - Buckets now load correctly when Plan ID is entered
394
- - Tasks dropdown now works properly
395
-
396
- ### 1.2.3
397
- - Improved error handling for Buckets and Tasks loading
398
- - Better fallback values when data cannot be loaded
399
- - Added console logging for debugging dropdown issues
400
-
401
- ### 1.2.2
402
- - Removed Plan dropdown (Plans cannot be loaded via API)
403
- - Plan ID is now manual input only
404
- - Buckets and Tasks still have dynamic dropdowns
405
- - Simplified and more reliable plan selection
406
-
407
- ### 1.2.1
408
- - Fixed Plans not loading (improved API endpoint to fetch from groups)
409
- - Allow manual ID input in all dropdown fields
410
- - You can now choose from dropdown OR paste IDs manually
411
- - Added placeholders and better descriptions for all ID fields
412
- - Improved error handling for plans loading
413
-
414
- ### 1.2.0
415
- - **Major UX Improvement**: Added dynamic dropdowns for Plans, Buckets, and Tasks
416
- - No more manual ID lookup - select from dropdown menus
417
- - Plans load automatically from your Microsoft 365 account
418
- - Buckets load dynamically based on selected Plan
419
- - Tasks load from selected Plan or Bucket
420
- - Improved user experience with clearer field labels
421
-
422
- ### 1.1.1
423
- - Fixed startDateTime not being set (was returning null)
424
- - Fixed user assignment by adding User.Read.All permission requirement
425
- - Added error logging for failed user lookups
426
- - Improved README documentation with all required permissions
427
-
428
- ### 1.1.0
429
- - Added priority dropdown (Urgent, Important, Medium, Low) instead of number input
430
- - Added user assignment functionality (assign tasks by email)
431
- - Improved user experience with better field descriptions
432
-
433
- ### 1.0.1
434
- - Fixed DateTime format handling (automatic conversion to ISO 8601)
435
- - Improved error handling for invalid date formats
436
-
437
- ### 1.0.0
438
- - Initial release
439
- - Support for creating and retrieving Planner tasks
440
- - OAuth2 authentication
441
- - CRUD operations (Create, Read, Update, Delete)
442
-
443
- ## License
444
-
445
- [MIT](LICENSE.md)
446
-
447
- ## Author
448
-
449
- Developed and maintained by **Blickwerk Media UG**
450
-
451
- ## Credits
452
-
453
- This node was invented and developed by [**Blickwerk Media UG**](https://github.com/blickwerk/n8n-nodes-microsoft-planner). **United Workspace GmbH** contributed to its further development – we thank them for their contributions.
454
-
455
- **Web**: [blickwerk.media](https://blickwerk.media)
456
-
457
- ## Support
458
-
459
- For issues, questions, or contributions, please visit the [GitHub repository](https://github.com/blickwerk/n8n-nodes-microsoft-planner).
1
+ # n8n-nodes-microsoft-planner
2
+
3
+ This is an n8n community node that allows you to interact with Microsoft Planner in your n8n workflows.
4
+
5
+ [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
6
+
7
+ [Microsoft Planner](https://www.microsoft.com/en-us/microsoft-365/business/task-management-software) is a task management tool that helps teams organize, assign, and collaborate on tasks.
8
+
9
+ ## Installation
10
+
11
+ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
12
+
13
+ ### Community Node
14
+
15
+ 1. Go to **Settings > Community Nodes** in your n8n instance
16
+ 2. Select **Install**
17
+ 3. Enter `@blickwerk/n8n-nodes-microsoft-planner` in **Enter npm package name**
18
+ 4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes
19
+ 5. Select **Install**
20
+
21
+ After installing the node, you can use it like any other node in your workflows.
22
+
23
+ ### Manual Installation
24
+
25
+ To install manually:
26
+
27
+ ```bash
28
+ npm install @blickwerk/n8n-nodes-microsoft-planner
29
+ ```
30
+
31
+ ## Prerequisites
32
+
33
+ You need to have:
34
+ - An active Microsoft 365 subscription
35
+ - A Microsoft Planner plan created
36
+ - A Microsoft Entra ID (Azure AD) app registration with the following delegated API permissions:
37
+ - `User.Read` - Sign in and read the own profile
38
+ - `User.ReadBasic.All` - Read basic profiles of all users (required to assign tasks by email)
39
+ - `Tasks.ReadWrite` - Read and write tasks
40
+ - `Group.ReadWrite.All` - Read and write all groups (required for Planner plans and comments)
41
+
42
+ ## Setting up Azure AD App
43
+
44
+ 1. Go to [Azure Portal](https://portal.azure.com/)
45
+ 2. Navigate to **Azure Active Directory > App registrations**
46
+ 3. Click **New registration**
47
+ 4. Give it a name (e.g., "n8n Microsoft Planner Integration")
48
+ 5. Select **Accounts in this organizational directory only**
49
+ 6. Add redirect URI: `https://your-n8n-instance.com/rest/oauth2-credential/callback`
50
+ 7. Click **Register**
51
+
52
+ ### Configure API Permissions
53
+
54
+ 1. Go to **API permissions**
55
+ 2. Click **Add a permission**
56
+ 3. Select **Microsoft Graph**
57
+ 4. Select **Delegated permissions**
58
+ 5. Add the following permissions:
59
+ - `User.Read` - Sign in and read the own profile
60
+ - `User.ReadBasic.All` - Read basic profiles of all users (required for user assignment by email)
61
+ - `Tasks.ReadWrite` - Read and write tasks
62
+ - `Group.ReadWrite.All` - Read and write all groups (required for Planner and comments)
63
+ 6. Click **Grant admin consent**
64
+
65
+ **Note**: `User.ReadBasic.All` is required if you want to assign tasks to users by email address. `Group.ReadWrite.All` is required for both Planner operations and creating/reading comments.
66
+
67
+ > **Upgrading from 1.5.x?** Version 1.6.0 requests the additional scopes `User.Read` and `User.ReadBasic.All`. Add them to your app registration and click **Reconnect** on your existing credential once.
68
+
69
+ ### Create Client Secret
70
+
71
+ 1. Go to **Certificates & secrets**
72
+ 2. Click **New client secret**
73
+ 3. Add a description and select expiration
74
+ 4. Copy the **Value** (you won't see it again!)
75
+
76
+ ### Get Application Details
77
+
78
+ - **Client ID**: Found on the app overview page
79
+ - **Client Secret**: The value you copied in the previous step
80
+
81
+ ## Credentials
82
+
83
+ Configure the Microsoft Planner OAuth2 API credentials in n8n:
84
+
85
+ 1. In n8n, go to **Credentials > New**
86
+ 2. Search for **Microsoft Planner OAuth2 API**
87
+ 3. Enter your **Client ID** and **Client Secret**
88
+ 4. If your app registration is **single tenant** ("Accounts in this organizational directory only"), replace `common` in the **Authorization URL** and **Access Token URL** with your Directory (tenant) ID, e.g. `https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize`
89
+ 5. Click **Connect my account**
90
+ 6. Complete the OAuth flow
91
+
92
+ ## Features
93
+
94
+ - **Resource Locator UI**: Choose between "From List" (dropdown) or "By ID" (manual input) for Buckets
95
+ - **User Assignment**: Assign tasks to users by email address
96
+ - **Priority Management**: Easy-to-use priority dropdown (Urgent, Important, Medium, Low)
97
+ - **Comprehensive Task Support**: Full support for Task details including Checklist items and Attachments
98
+ - **Labels**: Apply and remove Planner labels (category1 - category25), the dropdown shows the label names of your plan
99
+ - **Full CRUD Support**: Manage Tasks, Plans, and Buckets
100
+ - **Comment Support**: Create and retrieve comments on tasks
101
+ - **AI Agent Tool**: The node can be used as a tool by n8n AI agents
102
+ - **Concurrency Handling**: ETag conflicts (HTTP 412) are retried automatically
103
+
104
+ ## Operations
105
+
106
+ ### Task
107
+
108
+ - **Create** - Create a new task (supports Checklist, Attachments, Labels, Preview Type, Order Hints)
109
+ - **Delete** - Delete a task
110
+ - **Get** - Get a task by ID (optionally include details)
111
+ - **Get Board Format** - Get the ordering of a task in the Bucket, Progress or Assigned To board view
112
+ - **Get Files** - Get all files attached to a task
113
+ - **Get Many** - Get multiple tasks from a plan, a bucket, the current user ("My Tasks") or another user (optionally with details, optionally excluding completed tasks)
114
+ - **Update** - Update an existing task (supports Checklist, Attachments, Labels, replacing/removing assignees, removing dates)
115
+ - **Update Board Format** - Change the ordering of a task in a board view
116
+
117
+ ### Plan
118
+
119
+ - **Create** - Create a new plan in a group
120
+ - **Delete** - Delete a plan
121
+ - **Get** - Get a plan by ID (optionally include details)
122
+ - **Get Many** - Get all plans (My Plans, Group Plans or the plans of a specific user)
123
+ - **Update** - Update a plan (supports Title, Label Names, and Sharing)
124
+
125
+ ### Bucket
126
+
127
+ - **Create** - Create a new bucket in a plan (optionally with order hint, optionally upsert by name)
128
+ - **Delete** - Delete a bucket
129
+ - **Get** - Get a bucket by ID
130
+ - **Get Many** - Get all buckets in a plan
131
+ - **Update** - Update a bucket name and order
132
+
133
+ ### Comment
134
+
135
+ - **Create** - Create a new comment on a task
136
+ - **Get Many** - Get all comments from a task
137
+
138
+ ## Usage
139
+
140
+ ### Creating a Task
141
+
142
+ To create a task:
143
+ 1. Enter the **Plan ID** (you can find this in Microsoft Planner URL or via Graph Explorer)
144
+ 2. Select a **Bucket** from the dropdown (loads automatically based on the Plan ID)
145
+ 3. Enter the **Title** of the task
146
+
147
+ Optional fields:
148
+ - **Description**: Detailed task description
149
+ - **Priority**: Select from dropdown
150
+ - Urgent (highest priority)
151
+ - Important
152
+ - Medium (default)
153
+ - Low
154
+ - **Assigned To**: Comma-separated list of user emails or IDs (e.g., `user1@domain.com, user2@domain.com`)
155
+ - **Labels**: Labels to apply (the list shows the label names defined in the plan)
156
+ - **Due Date Time**: When the task should be completed
157
+ - **Start Date Time**: When work on the task should begin
158
+ - **Percent Complete**: Task completion percentage (0-100)
159
+ - **Checklist**: Add multiple checklist items with titles and checked status
160
+ - **Attachments**: Add external references/attachments with URLs, aliases, and types (Word, Excel, etc.)
161
+ - **Description**: Detailed task description (stored in task details)
162
+
163
+ ### Getting Tasks
164
+
165
+ **Get a single task:**
166
+ - Enter the **Task ID** manually (no dropdown available for single task lookups)
167
+
168
+ **Get many tasks:**
169
+ - Choose filter type: **Plan**, **Bucket**, **My Tasks** or **User**
170
+ - Enter the **Plan ID** (Plan / Bucket) or the **User** (email or ID)
171
+ - If filtering by Bucket: Select bucket from dropdown or enter Bucket ID manually
172
+ - Optional: **Include Details** (description, checklist, attachments for every task), **Exclude Completed Tasks**, **Select Properties**
173
+
174
+ Microsoft Graph does not support `$top`/`$filter` for Planner, so all tasks of the selected scope are returned (pagination is handled automatically).
175
+
176
+ ### Updating a Task
177
+
178
+ To update a task:
179
+ 1. Enter the **Task ID** manually
180
+ 2. Update any of these fields:
181
+ - Title
182
+ - Description
183
+ - Priority (via dropdown)
184
+ - Assigned users (via email list)
185
+ - **Due Date Time**
186
+ - **Start Date Time**
187
+ - **Percent Complete**
188
+ - **Move to different bucket**
189
+ - **Checklist**: Add new items or update existing ones (Operation Mode: Append / Replace), or remove items by ID
190
+ - **Attachments**: Add new references (Operation Mode: Append / Replace), or remove references by URL
191
+ - **Description**: Update the task description (an empty value clears it)
192
+ - **Labels to Add / Labels to Remove**
193
+ - **Assignment Mode**: Append (default) or Replace the assignees; **Remove Assignees** unassigns users
194
+ - **Remove Due Date / Remove Start Date**
195
+ - **Order Hint**, **Assignee Priority**, **Preview Type**, **Conversation Thread ID**
196
+
197
+ ### Getting Files from a Task
198
+
199
+ To get all files attached to a task:
200
+ 1. Enter the **Task ID** manually
201
+ 2. The operation returns:
202
+ - **taskId**: The task ID
203
+ - **fileCount**: Number of attached files
204
+ - **files**: Array of file objects with:
205
+ - **url**: Decoded SharePoint URL (ready to use)
206
+ - **alias**: Display name of the file
207
+ - **type**: File type (e.g., PowerPoint, Word, Excel, PDF, Other)
208
+ - **previewPriority**: Priority for preview display
209
+ - **lastModifiedDateTime**: When the file reference was last modified
210
+ - **lastModifiedBy**: Who last modified the reference
211
+
212
+ ### Creating a Comment
213
+
214
+ To create a comment on a task:
215
+ 1. Select **Comment** as the resource
216
+ 2. Choose **Create** operation
217
+ 3. Enter the **Task ID** manually
218
+ 4. Enter the **Content** of the comment
219
+ 5. Optionally select **Content Type**:
220
+ - **Text** (default): Plain text that will be wrapped in HTML
221
+ - **HTML**: Custom HTML content
222
+
223
+ The comment will be created as a conversation thread in the Microsoft 365 Group associated with the plan. If the task doesn't have a conversation thread yet (or the linked thread was deleted), one will be created automatically. Plain text is HTML-escaped and line breaks are preserved.
224
+
225
+ ### Getting Comments from a Task
226
+
227
+ To get all comments from a task:
228
+ 1. Select **Comment** as the resource
229
+ 2. Choose **Get Many** operation
230
+ 3. Enter the **Task ID** manually
231
+ 4. The operation returns:
232
+ - **taskId**: The task ID
233
+ - **commentCount**: Number of comments
234
+ - **comments**: Array of comment objects with:
235
+ - **id**: Comment ID
236
+ - **content**: Comment body (HTML)
237
+ - **from**: Author information
238
+ - **createdDateTime**: When the comment was created
239
+ - **lastModifiedDateTime**: When the comment was last modified
240
+ 5. Enable **Split Into Items** to get one output item per comment instead
241
+
242
+ **Note**: Once a comment is posted in Planner, it cannot be deleted or edited via the Microsoft Graph API or the Planner UI (for Basic plans). This is a limitation of the Microsoft 365 Groups conversation system that Planner uses.
243
+
244
+ ### Working with Plans
245
+
246
+ The **Plan** resource allows you to manage Microsoft Planner plans:
247
+
248
+ - **Create**: Requires an **Owner Group** (selected from dropdown or entered as ID) and a **Title**.
249
+ - **Get Many**:
250
+ - **My Plans**: Lists plans the authenticated user is a member of.
251
+ - **Group Plans**: Requires a **Group ID** to list plans owned by that specific group.
252
+ - **User**: Lists the plans a specific user (email or ID) is a member of.
253
+ - **Get**: Retrieve full plan metadata. Enable **Include Details** to get category descriptions (labels) and other metadata.
254
+ - **Update**:
255
+ - Change the plan **Title**.
256
+ - **Category Descriptions**: Update the names of the 25 color-coded labels (Category 01-25). An empty value removes the name.
257
+ - **Shared With**: Update plan members using a JSON mapping of user IDs.
258
+ - **Delete**: Permanently removes the plan.
259
+
260
+ ### Working with Buckets
261
+
262
+ The **Bucket** resource manages the columns or categories within a plan:
263
+
264
+ - **Create**: Requires a **Plan ID** and a **Name**.
265
+ - **Upsert**: When enabled, the node will check if a bucket with the same name already exists in the plan and return that instead of creating a duplicate.
266
+ - **Get Many**: Lists all buckets within a specific **Plan ID**.
267
+ - **Update**: Change the bucket **Name** and its **Order Hint** (controlling the position in the UI).
268
+ - **Delete**: Removes the bucket from the plan.
269
+
270
+ ### How to Find Plan IDs
271
+
272
+ You can find your Plan ID in several ways:
273
+
274
+ 1. **From Planner URL**: Open Microsoft Planner in browser, the URL contains the Plan ID:
275
+ ```
276
+ https://tasks.office.com/.../ planId=YOUR_PLAN_ID_HERE /...
277
+ ```
278
+
279
+ 2. **Via Microsoft Graph Explorer**:
280
+ - Go to https://developer.microsoft.com/graph/graph-explorer
281
+ - Sign in
282
+ - Run: `GET /me/planner/plans`
283
+ - Copy the `id` field from the plan you want
284
+
285
+ ### Resource Locator (From List / By ID)
286
+
287
+ When creating tasks or filtering by bucket:
288
+ - **From List**: Select from dropdown (automatically loads based on Plan ID)
289
+ - **By ID**: Manually enter the ID if you already know it
290
+
291
+ For Get/Update/Delete operations, you need to manually enter the Task ID.
292
+
293
+ ## Compatibility
294
+
295
+ Built and linted with the official n8n community node tooling (`@n8n/node-cli` 0.55, `n8n-workflow` 2.16) for n8n 2.x. Recent n8n 1.x versions that support `NodeConnectionTypes` work as well.
296
+
297
+ ## Development
298
+
299
+ ```bash
300
+ # --ignore-scripts skips the native build of isolated-vm (a dependency of n8n-workflow
301
+ # that is not needed to build nodes and fails on Windows without build tools)
302
+ npm install --ignore-scripts
303
+
304
+ npm run dev # starts a local n8n with the node loaded (hot reload)
305
+ npm run lint # n8n community node lint rules (strict mode)
306
+ npm run build # compiles to dist/
307
+ ```
308
+
309
+ ### Releasing
310
+
311
+ Since May 1 2026, n8n requires community nodes to be published from GitHub Actions with npm provenance. The workflow in `.github/workflows/publish.yml` publishes the package whenever a version tag (e.g. `1.6.0`) is pushed.
312
+
313
+ 1. One-time: configure npm **Trusted Publishing** for this repository (workflow `publish.yml`) or add an `NPM_TOKEN` repository secret
314
+ 2. Run `npm run release` locally. It lints, builds, bumps the version, updates `CHANGELOG.md`, commits, tags and pushes
315
+
316
+ ## Resources
317
+
318
+ - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
319
+ - [Microsoft Graph Planner API documentation](https://docs.microsoft.com/en-us/graph/api/resources/planner-overview)
320
+ - [Microsoft Graph Explorer](https://developer.microsoft.com/en-us/graph/graph-explorer)
321
+
322
+ ## Version History
323
+
324
+ ### 1.6.0
325
+ - **Migrated to the current n8n community node tooling**
326
+ - `@n8n/node-cli` for build, lint, dev and release, ESLint 9 flat config, strict mode
327
+ - GitHub Actions workflows for CI and npm publishing with provenance (required by n8n since May 2026)
328
+ - Node is usable as an AI agent tool; correct item pairing (`pairedItem`) for all operations
329
+ - **New Features**
330
+ - Task labels (applied categories) on create and update; the label dropdown shows the plan's label names
331
+ - Get Many Tasks for **My Tasks** and **User**, optional **Include Details** and **Exclude Completed Tasks**
332
+ - Get Many Plans for a specific **User**
333
+ - Task **Get Board Format** / **Update Board Format** (Bucket, Progress, Assigned To views)
334
+ - Task update: Assignment Mode (Append/Replace), Remove Assignees, Remove Due/Start Date, remove checklist items by ID, remove attachments by URL
335
+ - Task: Order Hint, Assignee Priority, Preview Type and Conversation Thread ID fields
336
+ - Checklist items: Order Hint; attachments: Preview Priority
337
+ - Bucket create: Order Hint
338
+ - Comments: Split Into Items option, pagination for threads with many posts
339
+ - Search filter for the Bucket and Group dropdowns
340
+ - **Bug Fixes**
341
+ - Task update priority values were wrong ("Urgent" sent 0, "Important" sent 1, which Planner treats as urgent). Now 1/3/5/9, the same as on create
342
+ - Replying to an existing comment thread used an invalid endpoint (the conversation ID was taken from the thread). Now uses `/groups/{id}/threads/{id}/reply`
343
+ - Creating the first comment relied on `threads` in the create-conversation response, which Graph does not return
344
+ - Plain-text comments were not HTML-escaped (`<`, `&` broke the comment) and lost line breaks
345
+ - The OAuth scope was missing `User.Read` / `User.ReadBasic.All`, so assigning users by email could fail
346
+ - Plans are now created with `container` instead of the deprecated `owner` property
347
+ - Empty Attachments/Checklist sections no longer send an empty PATCH request
348
+ - The description can now be cleared on update
349
+ - Dates passed as Luxon DateTime/Date objects (e.g. `{{ $now }}`) were dropped
350
+ - Email addresses containing `'` broke the user lookup filter
351
+ - ETag conflicts (HTTP 412) are retried automatically instead of failing the workflow
352
+ - Errors now reference the failing item
353
+
354
+ ### 1.5.5
355
+ - **Bug Fix: $select Duplication**
356
+ - Fixed an issue where the `$select` query parameter was sent twice during pagination, causing "Query option '$select' was specified more than once" error.
357
+
358
+
359
+ ### 1.5.4
360
+ - **New Feature: $select Support**
361
+ - Added "Select Properties" field to "Get Many" operations for Tasks, Plans, Buckets, and Comments.
362
+ - **Improved Task Assignments**
363
+ - Fixed silent failures for task assignments.
364
+ - Added robust user lookup (ID, Email, UPN) and error reporting for missing users.
365
+ - Added support for Array inputs (expressions) in the "Assigned To" field.
366
+
367
+
368
+ ### 1.5.3
369
+ - **UI Improvements for Attachments and Checklists**
370
+ - Refactored to use a grouped UI pattern for better usability
371
+ - Replaced separate fields with a unified structure using `fixedCollection`
372
+ - **Updated Logic for Updates**
373
+ - Replaced "Replace All" toggle with a clearer **Operation Mode** dropdown (Append vs Replace)
374
+ - Renamed "Mode" to "Input Mode" for better clarity between Manual and JSON inputs
375
+ - Fixed logic for replacing items with matching IDs during updates
376
+
377
+
378
+ ### 1.5.2
379
+ - **Maintenance release**
380
+ - Removed runtime dependency on `n8n-core` to comply with n8n community node requirements
381
+ - No functional changes to node behavior
382
+
383
+ ### 1.5.1
384
+ - **Maintenance release**
385
+ - Replaced deprecated `requestOAuth2` helper with `httpRequestWithAuthentication` in Microsoft Planner API requests
386
+ - Removed `console` logging from the Microsoft Planner node and helper to satisfy n8n community package scan requirements
387
+
388
+ ### 1.5.0
389
+ - **Major feature release** (with contributions from United Workspace GmbH)
390
+ - **Added Comment Support**
391
+ - Create and retrieve comments on Planner tasks
392
+ - Automatic conversation thread management
393
+ - Support for both HTML and plain text comments
394
+ - **Enhanced Task Details**
395
+ - **Checklist Support**: Full support for adding and managing checklist items
396
+ - **Attachments (References)**: Support for adding external URLs and files to tasks
397
+ - **Replace All Options**: New toggles to replace existing checklists or attachments entirely
398
+ - **Plan Resource Support**
399
+ - CRUD operations for Plans
400
+ - Manage Category Labels (1-25)
401
+ - Manage Plan members (Shared With)
402
+ - **Bucket Resource Support**
403
+ - CRUD operations for Buckets
404
+ - Manage bucket names and positioning (Order Hint)
405
+ - **Robust Encoding**: Improved handling of special characters in attachment URLs
406
+ - **Internal Improvements**: Comprehensive build audit, improved error handling and data fetch reliability
407
+
408
+ ### 1.4.0
409
+ - **Updated branding**
410
+ - New Planner icon/logo
411
+ - Added About Blickwerk Media section with company info and social links
412
+
413
+ ### 1.3.9
414
+ - **Added Get Files operation**
415
+ - Retrieve all files attached to a task
416
+ - URLs are properly decoded for direct use
417
+ - Returns file metadata including alias, type, and last modified info
418
+
419
+ ### 1.3.8
420
+ - **Fixed priority values**
421
+ - Corrected priority mapping: Urgent (1), Important (3), Medium (5), Low (9)
422
+ - Priority values now match Microsoft Planner API specifications
423
+
424
+ ### 1.3.7
425
+ - **Fixed Update Task response handling**
426
+ - Fetch complete updated task data after PATCH operation
427
+ - Always returns full task object with all current values
428
+ - Fixes empty array and undefined description issues
429
+
430
+ ### 1.3.6
431
+ - **Improved Update Task response**
432
+ - Update Task now returns complete task data including description
433
+ - Better user experience with full task details in response
434
+
435
+ ### 1.3.5
436
+ - **Documentation update**
437
+ - Synced README with npm package (no code changes)
438
+
439
+ ### 1.3.4
440
+ - **Fixed "Empty Payload" error in Update Task**
441
+ - Update Task now works correctly even when no fields are selected
442
+ - Only sends PATCH request when there are actual fields to update
443
+ - Improved error handling for update operations
444
+
445
+ ### 1.3.3
446
+ - **Restructured Get Many Tasks for better UX**
447
+ - Added "Filter By" dropdown to choose between Plan or Bucket filtering
448
+ - Plan ID and Bucket are now separate fields (not in collection)
449
+ - Bucket dropdown now properly loads when Plan ID is entered
450
+ - Simplified Get/Update/Delete Task to use "By ID" only (no dropdown)
451
+ - Resource Locator UI for buckets with "From List" / "By ID" toggle
452
+
453
+ ### 1.3.0 - 1.3.2
454
+ - Added resource locator UI for Buckets and Tasks
455
+ - Converted from loadOptions to listSearch methods
456
+ - Various fixes for dropdown loading issues
457
+
458
+ ### 1.2.4
459
+ - **Fixed Bucket and Task dropdowns not showing!**
460
+ - Changed field type from 'string' back to 'options' for proper dropdown display
461
+ - Buckets now load correctly when Plan ID is entered
462
+ - Tasks dropdown now works properly
463
+
464
+ ### 1.2.3
465
+ - Improved error handling for Buckets and Tasks loading
466
+ - Better fallback values when data cannot be loaded
467
+ - Added console logging for debugging dropdown issues
468
+
469
+ ### 1.2.2
470
+ - Removed Plan dropdown (Plans cannot be loaded via API)
471
+ - Plan ID is now manual input only
472
+ - Buckets and Tasks still have dynamic dropdowns
473
+ - Simplified and more reliable plan selection
474
+
475
+ ### 1.2.1
476
+ - Fixed Plans not loading (improved API endpoint to fetch from groups)
477
+ - Allow manual ID input in all dropdown fields
478
+ - You can now choose from dropdown OR paste IDs manually
479
+ - Added placeholders and better descriptions for all ID fields
480
+ - Improved error handling for plans loading
481
+
482
+ ### 1.2.0
483
+ - **Major UX Improvement**: Added dynamic dropdowns for Plans, Buckets, and Tasks
484
+ - No more manual ID lookup - select from dropdown menus
485
+ - Plans load automatically from your Microsoft 365 account
486
+ - Buckets load dynamically based on selected Plan
487
+ - Tasks load from selected Plan or Bucket
488
+ - Improved user experience with clearer field labels
489
+
490
+ ### 1.1.1
491
+ - Fixed startDateTime not being set (was returning null)
492
+ - Fixed user assignment by adding User.Read.All permission requirement
493
+ - Added error logging for failed user lookups
494
+ - Improved README documentation with all required permissions
495
+
496
+ ### 1.1.0
497
+ - Added priority dropdown (Urgent, Important, Medium, Low) instead of number input
498
+ - Added user assignment functionality (assign tasks by email)
499
+ - Improved user experience with better field descriptions
500
+
501
+ ### 1.0.1
502
+ - Fixed DateTime format handling (automatic conversion to ISO 8601)
503
+ - Improved error handling for invalid date formats
504
+
505
+ ### 1.0.0
506
+ - Initial release
507
+ - Support for creating and retrieving Planner tasks
508
+ - OAuth2 authentication
509
+ - CRUD operations (Create, Read, Update, Delete)
510
+
511
+ ## License
512
+
513
+ [MIT](LICENSE.md)
514
+
515
+ ## Author
516
+
517
+ Developed and maintained by **Blickwerk Media UG**
518
+
519
+ ## Credits
520
+
521
+ This node was invented and developed by [**Blickwerk Media UG**](https://github.com/blickwerk/n8n-nodes-microsoft-planner). **United Workspace GmbH** contributed to its further development – we thank them for their contributions.
522
+
523
+ **Web**: [blickwerk.media](https://blickwerk.media)
524
+
525
+ ## Support
526
+
527
+ For issues, questions, or contributions, please visit the [GitHub repository](https://github.com/blickwerk/n8n-nodes-microsoft-planner).