---
title: "Website chat assistant that books meetings in Outlook"
kind: "Kit"
category: "Business"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/588e66d7-ae07-4565-a80b-7dcac55da41e"
updated: "2026-11-12"
---

# Website chat assistant that books meetings in Outlook

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow behind a website chat widget. An AI agent on OpenAI’s gpt-4o checks your Outlook calendar for free time, books 30-minute Teams meetings, or emails you the enquiry when a visitor is not ready.

Website chat assistant that books meetings in Outlook is an n8n workflow in the Business category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow runs a chat assistant on a website. A Chat Trigger takes each visitor message, and an AI Agent on `gpt-4o-2024-08-06` answers it as a personal assistant. The agent has three tools. One reads your Outlook calendar for the next two weeks and works out the free slots. One books a 30-minute Teams meeting with the visitor. One emails you the enquiry when the visitor would rather talk to a person. Window Buffer Memory keeps each session’s last 20 interactions. Seventeen nodes do the work, beside five sticky notes that label parts.

### Who it suits

Consultancies, agencies and freelancers who sell through calls and keep their calendar in Outlook. A visitor books time without filling in a form. Skip it if your calendar is not Microsoft’s, or if you want an assistant that talks about anything but appointments. Its prompt tells the agent to refuse other topics.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Consulting and agencies | Founders | Let visitors book a first call from the site’s chat | A founder finds a Teams invite for Thursday morning waiting in Outlook. |
| Software studios | Sales leads | Have the agent ask about the project before it books | A lead gets a booked call and the visitor’s project notes. |
| Freelancers | Designers and coaches | Keep bookings and enquiries in one inbox and one calendar | A coach gets a booking from the chat overnight. |
| Professional services | Small firms | Collect an enquiry by email when a visitor is not ready to book | A firm gets an email with a name, company, address and message. |

You need solid n8n for this one: an OpenAI credential, an Outlook sign-in for three nodes, two tool nodes that point back at the workflow itself and a chat widget on your site.

### Where to use it

Any n8n that can reach OpenAI and Microsoft’s calendar and mail will run it, as long as your site can reach its chat address. Bookings land in the Outlook calendar of the account you sign in with.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps, with the chat address reachable from your site
- Your website: add n8n’s embedded chat widget and point it at the Chat Trigger’s production address
- Outlook: each booking is a calendar event, and each enquiry is an email to you

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. The workflow calls itself, so save it once before you finish the tools.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key for an OpenAI credential. The model is \`gpt-4o-2024-08-06\` |
| Outlook | A Microsoft Outlook OAuth2 credential. Its default scopes cover calendar and mail |
| Your site | A page where you can add n8n’s chat widget |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`. Save it once.
2. Add an OpenAI credential and select it in `OpenAI Chat Model`.
3. Add a Microsoft Outlook OAuth2 credential. Select it in `Make Appointment`, `Get Events` and `Send Message1`.
4. In `Get Availability` and `Send Message`, open the Workflow field and pick this same workflow from the list.
5. Open `AI Agent` and fill each placeholder in its system message: `<OWNER_NAME>`, `<OWNER_ROLE>`, `<YOUR_COMPANY>` and `<WHAT_YOUR_COMPANY_DOES>`. Check its hours and time zone too.
6. In `Send Message`, replace `<insert name>` in the tool description. In `Make Appointment`, replace `<timezone>` there. In `Send Message1`, replace `<YOUR_EMAIL_ADDRESS>` with the address that should get enquiries.
7. In `freeTimeSlots`, set your business hours. In `Get Events` and `Make Appointment`, change `Europe/London` if you work in another zone.
8. Save, then try the chat in n8n’s own chat window.
9. Press Publish and add the widget to your site, pointed at the Chat Trigger’s production address.

### How to use it

A visitor opens the chat on your site and writes. The agent asks which days suit them, confirms their time zone and gets their name, company and email. It checks your calendar and books, or sends you the enquiry. You see events in Outlook and enquiries marked high importance in your inbox.

What to change for a different result

| To change | Where |
| --- | --- |
| Who the assistant speaks for | The system message of \`AI Agent\` |
| Business hours | \`freeTimeSlots\`, 08:00 to 17:30 UTC in the code, and the prompt’s 8am to 6pm London |
| Time zone | \`Europe/London\` in \`Make Appointment\`, \`Get Events\` and the prompt |
| Notice and meeting length | The prompt’s rules, 48 hours and 30 minutes, and the end time in \`Make Appointment\` |
| Days checked | \`Get Events\`, from 2 to 16 days ahead |
| The greeting | \`Respond With Initial Message\` |
| The enquiry email | \`Send Message1\`, an HTML body with high importance |

### Example

A visitor to a web studio’s site says they want a quote for an online shop and can talk on Thursday afternoon. They give their name, company and email when asked.

The agent confirms the visitor’s time zone and picks a free slot from the calendar tool. It books a 30-minute Teams meeting, then tells the visitor to accept the invite that arrives by email. A visitor who is not ready gets asked for project details instead, and you get an email with name, email, company and message.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This file holds two workflows on one canvas. The top row is the chat: the trigger, a check, the agent with its model, memory and three tools, and the reply. The lower row starts at `Execute Workflow Trigger` and does the tools’ work. Test with your own calendar before any visitor does.

**For experts.** The tools call this same workflow with a `route` value, and the lower row answers by that route.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`If\` | Checks that \`chatInput\` exists | A call with no text gets \`Respond With Initial Message\` |
| \`Get Availability\` and \`Send Message\` | Tool Workflow 1.2 nodes that call this workflow with \`route\` set to availability or message | \`Switch\` reads \`route\`. The message tool also sends email, subject, message, name and company |
| \`freeTimeSlots\` | Lists free gaps inside business hours for each day that holds events | A day with no events never appears, and a day with events but none marked busy stops it with an error |
| \`Make Appointment\` | An HTTP tool that posts to \`me/events\` with values the agent fills in | The event carries a Teams link and the visitor as a required attendee |

### Good to know

The agent books real meetings from what a stranger types, so test it first. The original copy also has a few rough edges.

- Real invites: the visitor’s email address goes straight into the event’s attendee list, so anyone can type an address and send an invite to it
- Open chat: the Chat Trigger is public and allows every origin. Limit the allowed origins to your site, which stops other web pages but not a script, and watch your OpenAI spend
- Free time: \`freeTimeSlots\` reads 08:00 to 17:30 as UTC, while the prompt says London hours, and an empty day is never offered
- Calendar size: \`Get Events\` asks for at most 50 events and does not follow further pages
- Subject: the event’s subject is the literal text \`Meetings with \<name\> at \<company\>\`. To fill it from the chat, write \`{name}\` and add a \`company\` placeholder
- Time stamp: the prompt’s current time ends in \`:00.000Z\` after the seconds, so it is not a clean ISO time and it names UTC in summer too
- Model: OpenAI’s deprecations page, read on 12 November 2026, gives 14 January 2027 as the shutdown of \`gpt-4o-2024-08-06\`, with \`gpt-6-luna\` as the replacement
- Billing: each visitor message is at least one OpenAI call, and more when a tool runs
- Your data: chat messages go to OpenAI, and the visitor’s details go to Microsoft
- The copy: the two tool nodes pointed at their author’s own n8n, so their workflow field is empty. The author’s name, company and role in the prompt are placeholders, and the author’s promo notes are gone
- Credentials: the JSON holds none. The Outlook credential type name in the file has one letter written as a JSON escape, which n8n reads as the same name

## README

```markdown
# Website chat assistant that books meetings in Outlook

An n8n workflow behind a chat widget on your website. An AI agent on OpenAI's `gpt-4o-2024-08-06` talks to each
visitor, checks your Outlook calendar for free time and books a 30-minute Teams meeting. When a visitor is not ready
to book, the agent collects the details and emails you the enquiry.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 22 nodes. Seventeen do the work and five are sticky notes: a title and
  four short reminders to point the tools at this workflow, change hours and time zones, and edit the email. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The two tool nodes `Get Availability` and `Send Message` called a workflow in their author's n8n by its ID. That ID
  is cleared. They are meant to call this same workflow, whose lower row answers them: save it once, then pick it in
  each node.
- The system message of `AI Agent` named its author, the author's company and what it does. Those are now
  `<OWNER_NAME>`, `<OWNER_ROLE>`, `<YOUR_COMPANY>` and `<WHAT_YOUR_COMPANY_DOES>`.
- The recipient of `Send Message1` was an example address. It is now `<YOUR_EMAIL_ADDRESS>`.
- Two sticky notes that linked to the author's blog post and setup video are removed, and the title note now holds only
  the title. The links and credits it held are gone.
- Every Outlook and OpenAI credential link and the chat's `webhookId` are gone. The file had no settings block, so it
  now sets the current execution order, `v1`.
- The Outlook credential type name in `Make Appointment` and `Get Events` has one letter written as a JSON escape
  (`\u0041`). n8n reads it as the same name. The store’s key check would otherwise take the long name for a key.
- Nothing else. The prompt's rules, the tools, the memory and the layout are the file's own.

## Before you start

- An n8n instance, on n8n Cloud or your own server, that your website can reach.
- An OpenAI API key, for an OpenAI credential.
- A Microsoft account with Outlook. The Microsoft Outlook OAuth2 credential's default scopes include calendar
  read and write and mail send.
- A page on your site where you can add n8n's embedded chat widget.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`. Save it once, so n8n
   gives it an ID.
2. Add an OpenAI credential and select it in `OpenAI Chat Model`.
3. Add a Microsoft Outlook OAuth2 credential. Select it in `Make Appointment`, `Get Events` and `Send Message1`.
4. In `Get Availability` and `Send Message`, open the Workflow field and pick this same workflow from the list.
5. Open `AI Agent` and fill each placeholder in its system message: `<OWNER_NAME>`, `<OWNER_ROLE>`, `<YOUR_COMPANY>` and
   `<WHAT_YOUR_COMPANY_DOES>`. Read its hours, notice period and time zone while you are there.
6. In `Send Message`, replace `<insert name>` in the tool description. In `Make Appointment`, replace `<timezone>` in
   its tool description. In `Send Message1`, replace `<YOUR_EMAIL_ADDRESS>` with the address that should get enquiries.
7. In `freeTimeSlots`, set your business hours. In `Get Events` and `Make Appointment`, change `Europe/London` if you
   work in another time zone.
8. Save, then try the chat in n8n's own chat window with your own name and email.
9. Press Publish. Add n8n's chat widget to your site and point it at the Chat Trigger's production address.

## How a run goes

1. `Chat Trigger` (Embedded Chat, public, all origins allowed) takes each visitor message and a session ID.
2. `If` checks that `chatInput` exists. A call with no text goes to `Respond With Initial Message`, which answers
   "Hi, how can I help you today?". Everything else goes to `AI Agent`.
3. `AI Agent` (version 1.6) uses `OpenAI Chat Model` (`gpt-4o-2024-08-06`, temperature 0.4) and `Window Buffer Memory`,
   which keeps the last 20 interactions of each session. Its system message sets the role, the 30-minute meetings, the
   48 hours' notice, the weekday office hours and the rule to stay on appointments.
4. The agent has three tools. `Get Availability` and `Send Message` call this workflow with a `route` value, and
   `Make Appointment` posts to Microsoft's calendar itself.
5. In the lower row, `Execute Workflow Trigger` hands the call to `Switch`, which reads `route`.
   - `availability` goes to `Get Events`, which asks Microsoft's `calendarView` for the days from 2 to 16 ahead, then
     to `freeTimeSlots`, a Code node that lists free gaps inside business hours. `varResponse` returns that list to the
     agent.
   - `message` goes to `Send Message1`, an Outlook node that emails you a formatted enquiry with high importance.
     `varMessageResponse` tells the agent it was sent.
6. `Make Appointment` creates an event with the visitor as a required attendee, a Teams meeting link and the reason
   as its body. `Respond to Webhook` returns the agent's answer to the chat.

## Change the look

- Voice and rules: the system message of `AI Agent`.
- Business hours: `businessHoursStart` and `businessHoursEnd` in `freeTimeSlots`. They are UTC, and the prompt also
  states hours, so change both.
- Time zone: `Europe/London` in `Make Appointment`, `Get Events` and the prompt.
- Notice and length: the prompt's rules, and `dateEndTime` in `Make Appointment`, which says to end 30 minutes after
  the start.
- Days checked: the two date expressions in `Get Events`.
- Greeting: `Respond With Initial Message`.
- Enquiry email: the subject comes from the chat, and the HTML in `Send Message1` holds the layout.
- Model: `OpenAI Chat Model`.
- Look of the chat: set it in the widget on your site, not in this file.

## Good to know

- The agent books real meetings from what a stranger types. The visitor's email address goes into the event's
  attendee list, so anyone can type an address and send an invite to it. Test with your own calendar first.
- The Chat Trigger is public and allows every origin. Limiting the allowed origins to your site stops other web pages
  but not a script, so watch your OpenAI spend.
- `freeTimeSlots` reads its hours as UTC, while the prompt speaks of London hours. It lists only days that already hold
  an event, so a day with an empty calendar is never offered. A day with events but none marked busy stops
  the code with an error, since it reads the first busy event of a day that has none.
- `Get Events` asks for at most 50 events and does not follow further pages.
- The event's subject is the literal text `Meetings with <name> at <company>`. To fill it from the chat, write `{name}`
  and add a `company` placeholder to the tool.
- The prompt stamps the current London time with an expression that ends `:00.000Z` after the seconds. It is not a
  clean ISO time, and `Z` names UTC even in summer.
- OpenAI's deprecations page, read on 12 November 2026, gives 14 January 2027 as the shutdown of `gpt-4o-2024-08-06`,
  with `gpt-6-luna` as the replacement.
- Each visitor message is at least one OpenAI call, and more when a tool runs.
- Chat messages go to OpenAI, and the visitor's details go to Microsoft. The agent sees free slots, not your event
  titles.
- The file holds no credential and no key.
```

## What is in it

3 files, 38 KB, downloaded as a zip.

```text
NOTICE.md  614 B
README.md  7 KB
workflow.json  30 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 12 steps, starting when another workflow calls it or on a chat message
- AI: 1 step calls an AI model: AI Agent
- Sign-ins: Signs in to: Microsoft Outlook and OpenAI
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 10 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/588e66d7-ae07-4565-a80b-7dcac55da41e)
- [Its page on Mindket](https://mindket.com/p/588e66d7-ae07-4565-a80b-7dcac55da41e)
