Received tool input did not match expected schema: date input

Describe the problem/error/question

Using N8N workflow v 191.2

Creating an MCP that takes as an input a timestamp: “2025-07-10T15:00:00.000Z”

What is the error message (if any)?

langchain_core.tools.base.ToolException: Error: Received tool input did not match expected schema

Please share your workflow

{
“nodes”: [
{
“parameters”: {
“path”: “e2e77286-9055-4eec-96b9-8b8e85d60ae8”
},
“type”: “@n8n/n8n-nodes-langchain.mcpTrigger”,
“typeVersion”: 1,
“position”: [
-580,
-960
],
“id”: “91a44b19-b0e2-4592-960c-832e922adf40”,
“name”: “MCP Server Trigger”,
“webhookId”: “e2e77286-9055-4eec-96b9-8b8e85d60ae8”
},
{
“parameters”: {
“toolDescription”: “Makes an POST HTTP request on api.cal.com/v1/bookings and returns the response data”,
“method”: “POST”,
“url”: “https://test.com”,
“authentication”: “predefinedCredentialType”,
“nodeCredentialType”: “calApi”,
“sendQuery”: true,
“queryParameters”: {
“parameters”: [
{
“name”: “apiKey”,
“value”: “cal_live_7f183a27a9bfa15d3a606f2c4733de95”
}
]
},
“sendBody”: true,
“bodyParameters”: {
“parameters”: [
{
“name”: “eventTypeId”,
“value”: “={{ /n8n-auto-generated-fromAI-override/ $fromAI(‘parameters0_Value’, 1. Map the user’s choice (parsed from \\userInputText\) to \\eventTypeId\ (as a number):\n\n * \"Argentina\" → 2497888\n * \"México\" → 2510264\n * \"Yoshi\" → 2743704, ‘string’) }}”
},
{
“name”: “=start”,
“value”: “={{ $fromAI(‘parameters1_Value’, ‘Extract the start date and time. It MUST be a string formatted as a full ISO 8601 timestamp, including the UTC timezone designator \‘Z\’. Example: \‘2025-07-10T15:00:00.000Z\’’, ‘string’) }}”
},
{
“name”: “=responses.userFullName”,
“value”: “={{ /n8n-auto-generated-fromAI-override/ $fromAI(‘parameters2_Value’, the user full name, ‘string’) }}”
},
{
“name”: “=responses.userEmail”,
“value”: “={{ /n8n-auto-generated-fromAI-override/ $fromAI(‘parameters3_Value’, the user email, ‘string’) }}”
},
{
“name”: “userTimeZone”,
“value”: “={{ /n8n-auto-generated-fromAI-override/ $fromAI(‘parameters4_Value’, Determine JSON.timeZone based on the chosen eventTypeId:\n\n * If \\eventTypeId\ is 2497888, use the Argentina IANA timezone (e.g., \"America/Argentina/Buenos\\\\_Aires\").\n * If \\eventTypeId\ is 2510264, use the Mexico IANA timezone (e.g., \"America/Mexico\\\\_City\")., ‘string’) }}”
},
{
“name”: “language”,
“value”: “es”
},
{
“name”: “=metadata.source”,
“value”: “={{ /n8n-auto-generated-fromAI-override/ $fromAI(‘parameters6_Value’, The user phone number, ‘string’) }}”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.httpRequestTool”,
“typeVersion”: 4.2,
“position”: [
-1120,
-1000
],
“id”: “12caf749-753a-4c92-b6d1-4a1be6db56be”,
“name”: “POST Creates a new booking new”,
“credentials”: {
“calApi”: {
“id”: “fJNCZ5KPAECUtj77”,
“name”: “Cal account - Product Team API”
}
}
}
],
“connections”: {
“POST Creates a new booking new”: {
“ai_tool”: [
[
{
“node”: “MCP Server Trigger”,
“type”: “ai_tool”,
“index”: 0
}
]
]
}
},
“pinData”: {},
“meta”: {
“instanceId”: “55571e92873dad1c313e1ff5d9be1cdca5978f8aafda74504a91ad01a64bf0c0”
}
}

Input sent to the server

{‘parameters4_Value’: ‘America/Mexico_City’, ‘parameters3_Value’: ‘[email protected]’, ‘parameters6_Value’: ‘48-1663-wa-default’, ‘parameters0_Value’: 2510264, ‘parameters2_Value’: ‘Rafael Lima’, ‘parameters1_Value’: ‘2025-07-10T15:00:00.000Z’}

What have I discovered:

  • All fields work properly except for the one called “start” which expects a timestamp
  • The input value is a string, but somehow is being blocked by the schema validator

This is the field description

I believe for some reason N8N is identifying as a timestamp and not accepting it as a string. Could it be a bug? Any solutions?

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (n8n cloud:

Hi @Rafael_Lima, welcome to community!

From your case, why don’t you are not using the ‘stars’ button beside the input field? the AI will handle the input field as you describe it with detailed description.

hey thanks for quick reply. Sorry i forgot to mention, that was my first attempt. I clicked on x to read the {{}} so I understand what was going on. But i has the same behaviour

My idea was to replace “string” with “date” or smt like that, but according to the doc, the “start” only supports string, number and json


1 Like

if your datetime was not changing (mean you will using “now” time), you can use {{ $now }} instead.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.