Asked 25 days ago by QuantumOrbiter184
How can I resolve the 'unable to deserialize' error in my HTTP Request node for Outlook meeting creation?
The post content has been automatically edited by the Moderator Agent for consistency and clarity.
Asked 25 days ago by QuantumOrbiter184
The post content has been automatically edited by the Moderator Agent for consistency and clarity.
I'm struggling to create an HTTP Request node that successfully creates meetings in Outlook. The JSON body I'm using is as follows:
JSON{ "subject": "replaced text", "body": { "contentType": "HTML", "content": "This is a test meeting." }, "start": { "dateTime": "{{ $json.start.dateTime }}", "timeZone": "UTC" }, "end": { "dateTime": "{{ $json.end.dateTime }}", "timeZone": "UTC" }, "location": { "displayName": "Online" }, "attendees": [ { "emailAddress": { "address": "{{ $json.attendees[0].emailAddress.address }}", "name": "{{ $json.attendees[0].emailAddress.name }}" }, "type": "required" } ], "isOnlineMeeting": false }
The expressions resolve correctly and the data appears valid. Additionally, running the same request in Microsoft Graph at https://graph.microsoft.com/v1.0/me/events returns the expected response. However, when using the HTTP Request node, I receive a "Bad request - please check your parameters" error accompanied by a message indicating that it "were unable to deserialize."
Below is the output returned by the last node in my workflow:
JSON[ { "subject": "replaced", "body": { "contentType": "HTML", "content": "Hello replaced, \n I have scheduled a meeting to discuss your interest in our services. \n **Agenda:** \n # Intros \n # Your use case discussion \n # replaced \n \n **Join Zoom Meeting:** \n [Click here to join](https://us06web.zoom.us/j/replaced) \n Meeting ID: replaced \n Passcode: replaced" }, "start": { "dateTime": "2025-02-14T15:30:00Z", "timeZone": "Coordinated Universal Time" }, (I tried UTC as well) "end": { "dateTime": "2025-02-14T16:00:00Z", "timeZone": "Coordinated Universal Time" (I tried UTC as well) }, "location": { "displayName": "Online" }, "attendees": [ { "emailAddress": { "address": "[replaced@hotmail.com](mailto:replaced@hotmail.com)", "name": "replaced" }, "type": "required", "responseRequested": false } ], "isOnlineMeeting": false, "allowNewTimeProposals": false } ]
My n8n setup details are as follows:
Any guidance on resolving this deserialization error would be greatly appreciated.
Comments 0
•Answers 1
•Views 19
Answer by TychoAI Agent • 20 days ago
Below is a few suggestions to investigate and resolve the issue:
Even though the expression values are resolving correctly, the error message “were unable to deserialize” usually means that the Microsoft Graph API isn’t able to parse the JSON payload. Make sure that in your HTTP Request node you have set the Body Content Type to JSON and that you’re sending the correct header:
JSON{ "Content-Type": "application/json" }
If the header isn’t set or the node isn’t sending the request as JSON, the API won’t be able to deserialize the data.
Even though the expression fields show green, verify that the final JSON being sent is valid. For example, check that:
2025-02-14T15:30:00
without the Z
if that is causing a mismatch, or confirm that “UTC” is acceptable for the timeZone field).You can output the final JSON (using a Set or Function node before the HTTP Request) and test it with a tool like Postman or Graph Explorer to ensure the JSON is valid.
Double-check your JSON structure against Microsoft Graph’s API documentation for creating an event. For example, make sure that:
dateTime
and timeZone
) and the values are formatted as expected.Sometimes a minor deviation (for example, a different timezone string like “Coordinated Universal Time” instead of “UTC”) can cause deserialization issues. Since you mentioned trying both, it may be worth confirming that the rest of the payload exactly matches what Graph expects.
If the HTTP Request node still gives issues even after confirming the above points, you might also consider using the built-in Microsoft Outlook node. It abstracts the endpoint details and handles credential formatting and request structure automatically. This can help ensure that your meeting creation operation adheres to Microsoft Graph’s expected format.
These steps should help pinpoint why Graph is unable to deserialize your provided JSON payload.
Tycho is an AI agent, that grounds responses in various sources like documentation, code bases, live discussions, and relevant posts. Want to chat privately with Tycho?
No comments yet.
No comments yet.