{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "e37622d2-d9d4-4aff-8c0f-a2945e739ccd",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -180,
        40
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "702c21cf-6ca5-4b1b-8511-fd082152e50b",
      "name": "Search All Outlook Events",
      "type": "n8n-nodes-base.microsoftOutlookTool",
      "position": [
        180,
        40
      ],
      "parameters": {
        "limit": 20,
        "filters": {
          "custom": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Filter_Query', ``, 'string') }}"
        },
        "resource": "event",
        "descriptionType": "manual",
        "toolDescription": "Call this tool to consume Microsoft Outlook API and fetch all outlook calendar events across all available calendars for a given filter."
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "c4d7571d-0d96-42f5-a1dd-d2ee8e467731",
      "name": "Create New Calendar Event",
      "type": "n8n-nodes-base.microsoftOutlookTool",
      "position": [
        320,
        40
      ],
      "parameters": {
        "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
        "resource": "event",
        "operation": "create",
        "calendarId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Calendar', ``, 'string') }}"
        },
        "endDateTime": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End', ``, 'string') }}",
        "startDateTime": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start', ``, 'string') }}",
        "descriptionType": "manual",
        "toolDescription": "Call this tool to consume Microsoft Outlook API and create a new outlook calendar event. Ensure the calendar ID exists before proceeding.",
        "additionalFields": {
          "body": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Description', ``, 'string') }}"
        }
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "db5e44ab-7ec8-4831-9e41-34c963cd2314",
      "name": "Get Available Calendars",
      "type": "n8n-nodes-base.microsoftOutlookTool",
      "position": [
        460,
        40
      ],
      "parameters": {
        "limit": 20,
        "filters": {},
        "resource": "calendar",
        "descriptionType": "manual",
        "toolDescription": "Call this tool to consume Microsoft Outlook API and fetch a list of available calendars."
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "8102e365-eec4-48c6-986b-4ab8aac9e72a",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -20,
        40
      ],
      "parameters": {
        "sessionKey": "={{ $json.ts }}_{{ $json.user }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "ebd79d18-86b9-4e8b-9a27-f9878fd3d617",
      "name": "Outlook Calendar Assistant",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -60,
        -180
      ],
      "parameters": {
        "text": "={{ $json.message.substr($json.message.indexOf('>')+1, 9999).trim() }}",
        "options": {
          "systemMessage": "=You are a helpful calendar assistant who can help users with calendar and event enquiries.\n* Today's date and time is {{ $now.toISO() }}."
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "f976cea5-be3e-4e14-89f5-b5d05d66f0c7",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1340,
        -860
      ],
      "parameters": {
        "width": 440,
        "height": 720,
        "content": "\uc774 n8n \ud15c\ud50c\ub9bf\uc740 AI \uc5d0\uc774\uc804\ud2b8\uac00 \ub3c4\uad6c\ub97c \uc7a5\ucc29\ud55c Outlook \uce98\ub9b0\ub354 \uc5b4\uc2dc\uc2a4\ud134\ud2b8\ub97c \uad6c\ucd95\ud558\ub294 \uac83\uc774 \uc5bc\ub9c8\ub098 \uc26c\uc6b4\uc9c0 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4.\n\nn8n\uc758 AI \uc5d0\uc774\uc804\ud2b8\ub294 \uae30\uc874 \uc11c\ube44\uc2a4 \ubc0f \ub3c4\uad6c\uc640 \uc0c1\ud638\uc791\uc6a9\ud560 \uc218 \uc788\ub294 \uac15\ub825\ud55c \uc5b4\uc2dc\uc2a4\ud134\ud2b8\ub97c \uc27d\uac8c \uad6c\ucd95\ud560 \uc218 \uc788\uac8c \ud569\ub2c8\ub2e4. \uc57d\uac04\uc758 \ub178\ub825\uc73c\ub85c \uc774\ub7ec\ud55c \uc5d0\uc774\uc804\ud2b8\ub97c Slack\uacfc \uac19\uc740 \ub3c4\uad6c\ub97c \ud1b5\ud574 \ud300 \uad6c\uc131\uc6d0\uacfc \ub3d9\ub8cc\uc5d0\uac8c \uacf5\uac1c\ud558\uace0 \ud68c\uc0ac \uc804\uccb4 \uc0dd\uc0b0\uc131 \ud5a5\uc0c1\uae30\ub97c \ud65c\uc131\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n### \uc791\ub3d9 \uc6d0\ub9ac\n* \uc9c0\uc815\ub41c \ucc44\ub110\uc5d0\uc11c \"\ubd07 \uba58\uc158\" \uc774\ubca4\ud2b8\ub97c \ud3ec\ucc29\ud558\ub3c4\ub85d Slack Trigger \ub178\ub4dc\uac00 \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.\n* Edit fields \ub178\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uba54\uc2dc\uc9c0\uc5d0\uc11c \ud544\uc694\ud55c \uc18d\uc131\ub9cc \ucd94\ucd9c\ud569\ub2c8\ub2e4.\n* Outlook \uce98\ub9b0\ub354 \ub3c4\uad6c\ub97c \uc7a5\ucc29\ud55c AI \uc5d0\uc774\uc804\ud2b8\uac00 \uc870\uc9c1\uc758 \uacf5\uc720 \uce98\ub9b0\ub354 \ubc0f \uc774\ubca4\ud2b8\ub97c \uc704\ud55c \uc9c8\ubb38 \ubc0f \ub2f5\ubcc0 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.\n* AI \uc5d0\uc774\uc804\ud2b8\uc758 \uc751\ub2f5\uc774 Slack\uc5d0\uc11c \uc0ac\uc6a9\uc790\uc758 \ucffc\ub9ac\uc5d0 \ub300\ud55c \ub2f5\ubcc0\uc73c\ub85c \ubcf4\ub0b4\uc9d1\ub2c8\ub2e4.\n\n### \uc0ac\uc6a9 \ubc29\ubc95\n* \uc6cc\ud06c\ud50c\ub85c\ub294 \ubd07\uc744 @\uba58\uc158\ud55c \ud6c4 \ucffc\ub9ac\ub97c \uc785\ub825\ud558\uc5ec \ud2b8\ub9ac\uac70\ub429\ub2c8\ub2e4. \uc608: \"@bot \ud3f4\uc774 \uc774\ubc88 \uc8fc\uc5d0 \ucc38\uc11d\ud574\uc57c \ud560 \ud68c\uc758\ub294 \uba87 \uac1c\uc778\uac00?\"\n* \uc2e4\uc81c \uba58\uc158\uc744 \uc218\uc2e0\ud558\ub824\uba74 \uc6cc\ud06c\ud50c\ub85c\ub97c \ud65c\uc131\ud654\ud558\uace0 \ud504\ub85c\ub355\uc158 \ubaa8\ub4dc\ub85c \uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ubca4\ud2b8 \uad6c\ub3c5\uc5d0 \ud504\ub85c\ub355\uc158 \uc6f9hook URL\uc744 \uc0ac\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.\n\n### \ub3c4\uc6c0\uc774 \ud544\uc694\ud558\uc2e0\uac00\uc694?\n[Discord](https://discord.com/invite/XPKeKXeB7d)\uc5d0 \ucc38\uc5ec\ud558\uac70\ub098 [Forum](https://community.n8n.io/)\uc5d0\uc11c \ubb38\uc758\ud558\uc138\uc694!"
      },
      "typeVersion": 1
    },
    {
      "id": "03083765-b3bb-42f6-8f30-7087687bc6eb",
      "name": "Send Reply",
      "type": "n8n-nodes-base.slack",
      "position": [
        620,
        -180
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Get Message').item.json.channel }}"
        },
        "otherOptions": {
          "thread_ts": {
            "replyValues": {
              "thread_ts": "={{ $('Get Message').item.json.ts }}"
            }
          },
          "includeLinkToWorkflow": false
        }
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "19c8e68b-2bf1-403a-a43d-cdc465233436",
      "name": "Respond to Challenge",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        -240,
        -440
      ],
      "parameters": {
        "options": {},
        "respondWith": "text",
        "responseBody": "={{ $json.body.challenge }}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "2b9f7d68-8e76-440b-9a8b-b9eb4fc7061c",
      "name": "Is Auth Challenge?",
      "type": "n8n-nodes-base.if",
      "position": [
        -520,
        -300
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "cd56f5f2-dbb8-4cf0-83c8-f0566510ff51",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.body.challenge }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "c91350ef-5701-4188-8b1f-de12a0076a56",
      "name": "Get Message",
      "type": "n8n-nodes-base.set",
      "position": [
        -240,
        -180
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "44da9c3a-35eb-4636-9483-65492e858d96",
              "name": "ts",
              "type": "string",
              "value": "={{ $json.body.event.ts }}"
            },
            {
              "id": "761840aa-d2e3-4345-95bb-e7866b755880",
              "name": "message",
              "type": "string",
              "value": "={{ $json.body.event.text }}"
            },
            {
              "id": "094457fc-c149-4175-bed2-f0906cb70dea",
              "name": "is_bot",
              "type": "boolean",
              "value": "={{ $json.body.authorizations[0].is_bot }}"
            },
            {
              "id": "baf91a59-88fa-45fc-bfcb-ff27d0fe397d",
              "name": "user",
              "type": "string",
              "value": "={{ $json.body.event.user }}"
            },
            {
              "id": "abc6c16e-50e2-4154-9db9-4e12f9009d01",
              "name": "channel",
              "type": "string",
              "value": "={{ $json.body.event.channel }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "0681782d-21f3-4130-809c-188d83ebb7a9",
      "name": "On BOT/APP Mention",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -800,
        -300
      ],
      "parameters": {
        "path": "c63b08ce-360d-4185-aae1-294afef5cf2b",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "d0b12a70-e3e8-4149-98ba-dc2cf01f9953",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        -520
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 180,
        "content": "## 1. \ubd07 \uba58\uc158 \ub4e3\uae30  \n[Webhook Trigger\uc5d0 \ub300\ud574 \ub354 \uc77d\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook)  \n\n**\uc608\uc81c**:  \n`@bot \ud3f4\uc774 \uc774\ubc88 \uc8fc\uc5d0 \ucc38\uc11d\ud574\uc57c \ud560 \ud68c\uc758\ub294 \uba87 \uac1c\uc778\uac00\uc694?`"
      },
      "typeVersion": 1
    },
    {
      "id": "095fd13e-a660-46a8-95c6-b960083681f7",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -440
      ],
      "parameters": {
        "color": 7,
        "width": 540,
        "height": 220,
        "content": "## 2. Outlook \uce98\ub9b0\ub354 \ub3c4\uad6c\ub97c \uac16\ucd98 AI \uc5d0\uc774\uc804\ud2b8\n\n[AI Agent \ub178\ub4dc\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent)\n\n\uc774 \uc5d0\uc774\uc804\ud2b8\ub294 \uc0ac\uc6a9\uc790\ub97c \uc704\ud574 \uac80\uc0c9, \ud0d0\uc0c9, \uadf8\ub9ac\uace0 \uce98\ub9b0\ub354 \uc774\ubca4\ud2b8\ub97c \uc0dd\uc131\ud558\ub294 3\uac1c\uc758 Outlook \ub3c4\uad6c\ub97c \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5d0\uc774\uc804\ud2b8\ub294 \ub3c4\uad6c\ub97c \ubb34\uc5c7\uc744 \uc5b8\uc81c \uc0ac\uc6a9\ud560\uc9c0 \uc54c\ub824\uc904 \ud544\uc694\uac00 \uc5c6\ub2e4\ub294 \uc810\uc5d0\uc11c \ud6cc\ub96d\ud569\ub2c8\ub2e4 - \uc5d0\uc774\uc804\ud2b8\uac00 \uc2a4\uc2a4\ub85c \uadf8 \uacb0\uc815\uc744 \ub0b4\ub9b4 \ud14c\ub2c8\uae4c\uc694!"
      },
      "typeVersion": 1
    },
    {
      "id": "3b2662a2-9a79-4848-89db-a5699942f39c",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        620,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 200,
        "content": "## 3. \uc0ac\uc6a9\uc790\uc5d0\uac8c \ub2f5\ubcc0\n\n[Slack \ub178\ub4dc\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack)\n\n\ub2e8\uc21c\ud788 \uc0ac\uc6a9\uc790\uc758 \ucffc\ub9ac\uc5d0 \ub2f5\ubcc0\uc744 \ubcf4\ub0b4\uc90d\ub2c8\ub2e4. \ubb3c\ub860, \uc774\uac83\uc740 \uac00\uc7a5 \uac04\ub2e8\ud55c \uacbd\uc6b0\uc774\uba70, \ud544\uc694\uc5d0 \ub530\ub77c \ub2e4\uc911 \ud134 \ub300\ud654\ub97c \ucc98\ub9ac\ud558\ub294 \uac83\uc740 \ub2f9\uc2e0\uc5d0\uac8c \ub9e1\uae41\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "f00e8727-12f2-4dad-8736-98bd0996f19a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1340,
        -120
      ],
      "parameters": {
        "color": 5,
        "width": 440,
        "height": 340,
        "content": "### Slack \uc571 \uc774\ubca4\ud2b8 \uad6c\ub3c5 \uc124\uc815\n1. https://api.slack.com/apps\ub85c \uc774\ub3d9\ud558\uc138\uc694\n2. \uc571\uc744 \uc0dd\uc131\ud558\uac70\ub098 \uc120\ud0dd\ud558\uc138\uc694\n3. \uae30\ub2a5 \uc139\uc158\uc5d0\uc11c \"Event Subscriptions\"\uc744 \ud074\ub9ad\ud558\uc138\uc694\n4. \uc774 \ud398\uc774\uc9c0\uc5d0\uc11c \"Enable Events\" \uc635\uc158\uc744 \ud65c\uc131\ud654\ud558\uc138\uc694\n5. \uc774 \ud15c\ud50c\ub9bf\uc758 \ud504\ub85c\ub355\uc158 URL\uc744 \uc785\ub825\ud558\uc138\uc694 - \ub2f9\uc2e0\uc758 \uc6cc\ud06c\ud50c\ub85c\uc6b0\uac00 \ud65c\uc131\ud654\ub418\uc5b4 \uc788\uace0 \uacf5\uac1c\uc801\uc73c\ub85c \uc811\uadfc \uac00\ub2a5\ud574\uc57c \ud569\ub2c8\ub2e4.\n6. Slack\uc774 \uc774 \uc6cc\ud06c\ud50c\ub85c\uc6b0\uc5d0 \"challenge\" \uc694\uccad\uc744 \ubc1c\uc1a1\ud560 \uac83\uc774\uba70, \uc774\ub294 \uc751\ub2f5\ud558\uc5ec \uad6c\ub3c5\uc744 \ud655\uc778\ud569\ub2c8\ub2e4.\n7. \uc131\uacf5\ud558\uba74, \"subscribe to bot events\" \uc544\ub798\uc5d0\uc11c \"app_mention\" \uc635\uc158\uc744 \ucc3e\uc544 \uc120\ud0dd\ud558\uc138\uc694.\n8. \ud398\uc774\uc9c0 \ud558\ub2e8\uc5d0\uc11c \"save changes\"\ub97c \ud074\ub9ad\ud558\uc138\uc694.\n9. \uc774\uc81c \uc774 \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub294 \ucc44\ub110\uc5d0\uc11c \ubd07\uc774 \"@mention\"\ub420 \ub54c \ud2b8\ub9ac\uac70\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Get Message": {
      "main": [
        [
          {
            "node": "Outlook Calendar Assistant",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Outlook Calendar Assistant",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Outlook Calendar Assistant",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Is Auth Challenge?": {
      "main": [
        [
          {
            "node": "Respond to Challenge",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On BOT/APP Mention": {
      "main": [
        [
          {
            "node": "Is Auth Challenge?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Available Calendars": {
      "ai_tool": [
        [
          {
            "node": "Outlook Calendar Assistant",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create New Calendar Event": {
      "ai_tool": [
        [
          {
            "node": "Outlook Calendar Assistant",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Search All Outlook Events": {
      "ai_tool": [
        [
          {
            "node": "Outlook Calendar Assistant",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Outlook Calendar Assistant": {
      "main": [
        [
          {
            "node": "Send Reply",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}