7 min read

Bring Agentic AI to Microsoft Bookings with Knoon’s Chat-Based Agents

Ever wondered how Knoon makes Microsoft Bookings fully autonomous? Users simply chat to find availability, assign staff, and manage appointments. Knoon handles the reasoning and execution, transforming complex scheduling into smooth, human-like conversations.
Bring Agentic AI to Microsoft Bookings with Knoon’s Chat-Based Agents

Microsoft Bookings is a powerful appointment-scheduling tool for businesses that need structure and staff assignment such as clinics, salons, service teams, consultants, and more. But while Bookings makes scheduling easier, it still relies on human staff to manage requests, update appointments, assign the right team member, and communicate with customers.

With Knoon’s agentic AI, all of that becomes automated.

Knoon’s chat-based agents combine reasoning, planning, and real tool execution in Microsoft Bookings. This means your users can simply “talk” to your booking system, and the agent takes care of everything behind the scenes: finding availability, assigning staff, creating bookings, or making changes instantly.

What is Microsoft Bookings?

Unlike a simple calendar system such as Microsoft Outlook Calendar or Google Calendar, Microsoft Bookings has deeper scheduling logic:

  • Each business (or location) has its own Bookings calendar
  • Staff members are individually assigned
  • Each staff has availability, services, roles, and working hours
  • Appointments can involve multiple staff
  • Bookings syncs automatically with Outlook calendars

This makes Microsoft Bookings ideal for complex scheduling scenarios but also harder for traditional chatbots to handle.

Knoon's Agentic AI changes that.

Knoon uses Agentic AI that can understand goals, make decisions, execute tools, and complete tasks. When connected to Microsoft Bookings, this means your customers can book appointments, change times, or ask questions through natural chat, and the agent autonomously handles the full workflow.

How to Create and Equip Microsoft Bookings Tool in Knoon

Create a Microsoft Bookings Tool

Here’s how to set up the Bookings integration in Knoon.

  1. Open Knoon.
  2. Go to Bots → Tools.
  3. Press Create.
  4. Enter a name and description for your tool.
  5. (Optional) Enable Provide alternative description to LLM for clearer instructions.
  6. Choose App as the Tool Type.
  7. Press Select an App Action.
  8. Pick Microsoft → Microsoft Bookings.
  9. Choose an action such as List Staff Members, List Booking Availability, Create Booking Appointment,Update Booking Appointment, Cancel Booking Appointment & more.
  10. Define your agent variables.
  11. Configure action payload if needed.
  12. Press Submit.

Attach the Tool to an Agent

  1. Go to Bots → Agents.
  2. Select an agent.
  3. Scroll to the Tools section.
  4. Select the Microsoft Bookings tool you created.
  5. Press Submit.

Your agent is now fully equipped to check availability, create appointments, and update events in Microsoft Bookings directly within conversations.

Demo Workflow: Booking Beauty Hair Salon Appointment via Microsoft Bookings

In this demo, we run a hair salon called Beauty, which has two stylists, Jeromy and Kenny. The salon manages its appointments through Microsoft Bookings, and uses Knoon to communicate with customers and handle all booking-related requests through chat.

Setup Microsoft Bookings Tool

To automate scheduling for this example clinic workflow, you will create 5 Microsoft Bookings tools:

  • Check Availability (List Booking Availability)
  • Create Appointment (Create Booking Appointment)
  • Find Existing Appointment (Search Appointments)
  • Preferred Stylist (List Staff Members)
  • Update Appointment (Update Booking Appointment)
  • Cancel Appointment (Cancel Booking Appointment)

Below is a step-by-step guide for setting up each tool.

Check availability of the hair salon appointment slots

  1. In the create a new tool page,
    Name: Check availability of the hair salon appointment slots
    Description: Check availability of the appointment slots before booking or updating of appointment.
  2. Choose App as the Tool Type.
  3. Press Select an App Action.
  4. Pick Microsoft → Microsoft Booking → List Booking Availability.
  5. Select a booking business.
  6. Configure the agent variables.
    Name: startDate
    Description: Start date of the query in IOS8601.

    Name: endDate
    Description: End date of the query in IOS8601.
  7. Configure the action payload.
    startDate: {{startDate}}
    endDate: {{endDate}}
  8. Done!

Preferred Hair Stylist

  1. In the create a new tool page,
    Name: Preferred Hair Stylist
    Description: Choose a preferred stylist from the list of the staff members.
  2. Choose App as the Tool Type.
  3. Press Select an App Action.
  4. Pick Microsoft → Microsoft Booking → List Staff Members.
  5. Select a booking business.
  6. Done!

Book an hair salon appointment

  1. In the create a new tool page,
    Name: Book an hair salon appointment
    Description: Create a hair salon appointment booking
  2. Choose App as the Tool Type.
  3. Press Select an App Action.
  4. Pick Microsoft → Microsoft Booking → Create Booking Appointment.
  5. Select a booking business.
  6. Configure the agent variables.
    Name: startDateTime
    Description: This is the start date time in ISO 8601.

    Name: endDateTime
    Description: This is the end date time in ISO 8601.

    Name: customerName
    Description: The name of the customer

    Name: staffMemberIDs
    Description: The staffMemberID of the hairstylist staff members.
  7. Configure the action payload.
    startDateTime: startDateTime
    endDateTime: endDateTime
    customerName: customerName
    customerEmailAddress: {{data.contact.email}}
    staffMemberIDs: staffMemberIDs
  8. Done!

Get existing appointment information

  1. In the create a new tool page,
    Name: Get existing appointment information
    Description: Get existing appointment information.
  2. Choose App as the Tool Type.
  3. Press Select an App Action.
  4. Pick Microsoft → Microsoft Booking → Search Appointments.
  5. Select a booking business.
  6. Configure the agent variables.
    Name: startDate
    Description: Start date of the query in IOS8601.

    Name: endDate
    Description: End date of the query in IOS8601.
  7. Configure the action payload.
    startDate: {{startDate}}
    endDate: {{endDate}}
    customerEmail: {{data.contact.email}}
  8. Done!

Update hair salon appointment

  1. In the create a new tool page,
    Name: Update hair salon appointment
    Description: Update booking appointment in the hair salon after confirming slot availability.
  2. Choose App as the Tool Type.
  3. Press Select an App Action.
  4. Pick Microsoft → Microsoft Booking → Update Booking Appointment.
  5. Select a booking business.
  6. Configure the agent variables.
    Name: appointmentId
    Description: The appointmentId of the appointment to be updated.

    Name: startDateTime
    Description: Start date time of the appointment in IOS8601.

    Name: endDateTime
    Description: End date time of the appointment in IOS8601.

    Name: staffID
    Description: This is the staffID.
  7. Configure the action payload.
    appointmentID: appointmentID
    startDateTime: start-time
    endDateTime: end-time
    matchedCustomerEmailAddress: {{data.contact.email}}
    staffID: staffID
  8. Done!

Cancel hair salon appointment

  1. In the create a new tool page,
    Name: Cancel a hair salon appointment.
    Description: Cancel a hair salon booking appointment.
  2. Choose App as the Tool Type.
  3. Press Select an App Action.
  4. Pick Microsoft → Microsoft Booking → Cancel Booking Appointment
  5. Select a business booking.
  6. Configure the agent variables:
    Name: appointmentID
    Description: This is the appointmentID to be cancelled.

    Name: reasonOfCancellation
    Description: State the reason(s) to cancel the appointment.
  7. Configure the action payload.
    appointmentID: {{appointmentId}}
    matchedCustomerEmailAddress: {{data.contact.email}}
    cancellationMessage: {{reasonOfCancellation}}
  8. Done!

Once the tools are setup, attach them to an agent and test its response.

Ask the agent to book a 1 PM slot next week with stylist Kenny

We asked the agent to book a 1 PM appointment next week with stylist Kenny. The agent checked Kenny’s schedule and confirmed that he was available Monday through Friday from 9 AM to 5 PM, meaning a 1 PM slot was open on any weekday.

Request the agent to locate a 1 PM opening with Kenny for the coming week. It suggested Friday at 1 PM.
Request the agent to locate a 1 PM opening with Kenny for the coming week. It suggested Wednesday at 1 PM.
Once the user confirms, the agent proceeds to schedule the appointment with Kenny.
Once the user confirms, the agent proceeds to schedule the appointment with Kenny.

It then suggested a quieter midweek option: Wednesday, 10 December 2025 at 1 PM. After we confirmed the choice, the agent proceeded to create the booking, and the appointment with Kenny was successfully scheduled.

The 1 PM Wednesday appointment has been successfully added to Kenny’s Booking/Outlook Calendar.
The 1 PM Wednesday appointment has been successfully added to Kenny’s Booking/Outlook Calendar.
A confirmation email for the booking was sent.
A confirmation email for the booking was sent.

Change appointment to another date and time

We then asked the agent to check whether an appointment was scheduled for the following week, and if so, to reschedule it to Monday at 1 PM with the same stylist. The agent located the existing booking on Wednesday, 10 December 2025 at 1 PM, and reviewed the stylist’s availability for the requested time. It found that Kenny, the current stylist, was not available at 1 PM on Monday, but identified that another stylist, Jeromy, was free.

Request the agent to change the date and time of an existing appointment.
Request the agent to change the date and time of an existing appointment.

The agent provided clear options:

  • Switch to Monday at 1 PM with Jeromy, keep the original Wednesday appointment
  • Explore different times
The agent identifies suitable new time slots and confirms them with the user.
The agent identifies suitable new time slots and confirms them with the user.

After confirming that Jeromy was acceptable, the agent retrieved the event details and updated the appointment to the new date and time.

The 1 PM Wednesday appointment has been successfully added to Jeromy's Booking/Outlook Calendar.
The 1 PM Wednesday appointment has been successfully added to Jeromy's Booking/Outlook Calendar.

The appointment was successfully rescheduled to Monday, 8 December 2025 at 1 PM for 30 minutes with Jeromy.

A confirmation of the updated booking was sent.
A confirmation email of the updated booking was sent.

And just like that, the entire adjustment was handled automatically, with no manual coordination required.

Cancel Appointment

Finally, we tested appointment cancellation. The user requested to cancel their appointment for the following week. The agent began by confirming whether it should look up any appointment scheduled between Monday, 8 December and Sunday, 14 December, or cancel a specific booking if an appointment ID or exact time was provided. It also asked for a reason to record for the cancellation.

The user requested to cancel an appointment.
The user requested to cancel an appointment.
The agent then went ahead and cancelled an appointment.
The agent then went ahead and cancelled an appointment.

After the user explained that they would be flying to Hong Kong and unable to attend, the agent searched for the upcoming appointment and identified the booking on Monday, 8 December at 1 PM. It then proceeded to cancel the appointment and recorded the provided reason.

An appointment with Jeromy was successfully cancelled and removed from Booking/Outlook Calendar.
An appointment with Jeromy was successfully cancelled and removed from Booking/Outlook Calendar.
A confirmation email of the cancelled booking was sent.
A confirmation email of the cancelled booking was sent.

The appointment was successfully removed from the calendar, completing the entire process automatically.

Yayyy! 👏🏻