{
  "name": "Convert event text to calendar entries with AI and NextCloud/Google/Zoho",
  "nodes": [
    {
      "id": "758f90ce-d94a-4c62-a793-7ddd088178f9",
      "name": "to_UTC",
      "type": "@n8n/n8n-nodes-langchain.toolCode",
      "position": [
        1120,
        560
      ]
    },
    {
      "id": "6917181e-dfdc-4cec-b621-8ce68c774231",
      "name": "Brain",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1020,
        560
      ]
    },
    {
      "id": "bbcd8973-12d9-4d85-b6f6-4cec224ad447",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        240
      ],
      "parameters": {
        "width": null,
        "height": 663.3731744745251,
        "content": "## START\nSend a text block of event data (like an from an email body or text extracted from an image) to property **`eventInfo`**."
      }
    },
    {
      "id": "8b7d5184-0f36-4ae8-87d1-bbaf4b8133f0",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        740,
        240
      ],
      "parameters": {
        "width": null,
        "height": 663.3731744745248,
        "content": "## EXPANSION\n(Optional) If you wanted this workflow to receive an image, and send that directly to the language model to parse for event data, you can use this switch node to send the binary image dow"
      }
    },
    {
      "id": "2c338370-8748-4c8f-8bdd-29f8b25f86fb",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        780,
        720
      ]
    },
    {
      "id": "2f211450-6b40-4bac-8a1b-00592164d11d",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1000,
        240
      ],
      "parameters": {
        "width": 358.7342715692612,
        "height": 663.3731744745251,
        "content": "## PARSE EVENT DETAILS\nThis agent takes in a block of unformatted text that contains info about an event (eg. time, place, event name...) and parses it to a structured output."
      }
    },
    {
      "id": "276e4820-bbab-48a2-9d9d-dd4275924052",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1380,
        240
      ],
      "parameters": {
        "width": null,
        "height": 663.3731744745251,
        "content": "## CREATE EVENT\nSends a request to `NextCloud` CalDAV to create an event in your calendar.\n\nYou'll need to add `Basic Auth` credentials (user/pass) from your NextCloud account.\n\nCreate an app-specific"
      }
    },
    {
      "id": "93d6676b-f337-4052-927a-d4a86e9d589d",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1640,
        240
      ],
      "parameters": {
        "width": null,
        "height": 663.3731744745251,
        "content": "## RESPOND\nSend your success response back to the source system. You can edit this to return a JSON object instead if required.\n\n**PS** - This workflow plugs in seamlessly with [this iCloud Shortcut]("
      }
    },
    {
      "id": "6b37e5dd-e26a-4920-a929-9a9749ad8cc1",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        920
      ],
      "parameters": {
        "width": 1400.3576539723263,
        "height": 258.08325199688073,
        "content": "## SUGGESTIONS\nIn production setting, you'll want to account for errors and bad input. What if the user just puts in random text with no event details? The Ai should be instructed to then output a spe"
      }
    },
    {
      "id": "4e383a02-ece9-4c0f-a8a6-4090885e6c40",
      "name": "Create Zoho Event (API)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1420,
        720
      ]
    },
    {
      "id": "06883e54-7548-448d-92d8-6d7079bdbf43",
      "name": "Structured Output",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1220,
        560
      ]
    },
    {
      "id": "1102b5a1-932b-4ab9-a2d3-17950c4b8b99",
      "name": "Success Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1700,
        540
      ]
    },
    {
      "id": "c162405c-ed1a-4177-8f9f-5110ffbeb426",
      "name": "Fail Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1700,
        740
      ]
    },
    {
      "id": "7f11b9f4-526e-45fd-8e89-e89c8b9e2db4",
      "name": "NextCloud Cal Event Creation",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1440,
        540
      ]
    },
    {
      "id": "9a789e02-203a-40b8-a834-aa6fa6881ce7",
      "name": "Good Parse",
      "type": "n8n-nodes-base.if",
      "position": [
        1040,
        760
      ]
    },
    {
      "id": "c6bb115d-bf79-457d-a8db-fb4a8ef1bcf5",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        -260
      ],
      "parameters": {
        "width": 435.7280989463619,
        "height": 478.57603298212047,
        "content": "## Eric Knaus www.MarketingGuy.ai\nFind me on LinkedIn: https://linkedin.com/in/ericknaus\n\n![My Image](https://ericknaus.com/wp-content/uploads/2025/09/black-and-white_sm.png)\n\n## TTC - Text-to-Calenda"
      }
    },
    {
      "id": "f10d8f8d-88b0-49be-8263-14c7a343bc1d",
      "name": "Google Calendar",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        1480,
        740
      ]
    },
    {
      "id": "b4be10a7-0306-425e-9e24-f449dc198ae0",
      "name": "Inbound Event Info",
      "type": "n8n-nodes-base.webhook",
      "position": [
        540,
        540
      ]
    },
    {
      "id": "80fc0363-4991-4eb9-a019-17b8597e9bfe",
      "name": "Parse Event Info",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1040,
        380
      ]
    }
  ],
  "connections": {
    "Brain": {
      "ai_languageModel": [
        [
          {
            "node": "Parse Event Info",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "to_UTC": {
      "ai_tool": [
        [
          {
            "node": "Parse Event Info",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Good Parse": {
      "main": [
        [
          {
            "node": "NextCloud Cal Event Creation",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fail Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Event Info": {
      "main": [
        [
          {
            "node": "Good Parse",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output": {
      "ai_outputParser": [
        [
          {
            "node": "Parse Event Info",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Inbound Event Info": {
      "main": [
        [
          {
            "node": "Parse Event Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "NextCloud Cal Event Creation": {
      "main": [
        [
          {
            "node": "Success Response",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fail Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}