Integration
Microsoft 365 voice AI integration
The Microsoft 365 integration connects your AI voice and chat agents to Microsoft 365, so they can check calendar availability on a live call. It's a productivity connector that runs as a tool the agent calls mid-conversation — you connect with oauth, attach it to an agent, and it acts in real time without a human in the loop.
Last updated 2026-10-27
What your agent can do with Microsoft 365
Check whether the Outlook calendar is free between two times BEFORE offering or booking a slot. Provide timeMin and timeMax as ISO 8601 with the UTC offset of the timezone you have been told you are operating in — a window sent in the wrong zone returns the wrong busy intervals. Returns busy intervals in UTC.
Inputs
| Field | Type | Description |
|---|---|---|
| timeMax* | string | Window end, ISO 8601 with the same UTC offset as timeMin |
| timeMin* | string | Window start, ISO 8601 with YOUR timezone's UTC offset, e.g. 2026-06-15T09:00:00+05:30 in India or 2026-06-15T09:00:00-04:00 in New York |
Create an Outlook calendar appointment. Provide start and end as ISO 8601 date-times WITH a UTC offset. Use the offset of the timezone you have been told you are operating in — do not assume one, and never copy the offset from an example. Use this when the caller agrees to a specific appointment time.
Inputs
| Field | Type | Description |
|---|---|---|
| attendee_email | string | Optional attendee email to invite |
| description | string | Optional event notes |
| end* | string | End datetime, ISO 8601 with the same UTC offset as start |
| start* | string | Start datetime, ISO 8601 with YOUR timezone's UTC offset, e.g. 2026-06-15T15:00:00+05:30 in India or 2026-06-15T15:00:00-04:00 in New York |
| title* | string | Event title, e.g. Demo call with Acme |
Save the caller's details as a new row in the Excel table. Fill every column you can; ask the caller for anything missing.
Inputs
| Field | Type | Description |
|---|---|---|
| row* | array | Cell values for the new row, left to right, e.g. [name, phone, notes] |
Look up rows in the connected Excel table — e.g. find the caller's booking or order by phone number or name. Returns each match with its row_number (needed to update it). Dates may appear as Excel day numbers unless the column holds text.
Inputs
| Field | Type | Description |
|---|---|---|
| limit | integer | Max rows to return (1-20, default 5) |
| search_column | string | Column header to search in, e.g. 'Phone'. Omit to search every column. |
| search_value | string | The value to find — e.g. the caller's phone number, name, or booking ID. Leave empty to just read the first rows. |
Change specific cells of one row in the connected Excel table. First find the row with the find-rows tool, then pass its row_number and only the values that changed.
Inputs
| Field | Type | Description |
|---|---|---|
| cells | object | Column header → new value for just the cells to change, e.g. {"Status": "Confirmed"}. Other cells keep their values. |
| row_number* | integer | The row to update — take it from the find-rows result. Row 1 is the table's header row; data starts at row 2. |
Read rows from the connected Excel table in order, a page at a time — use this to import a whole list. Returns each row with its row_number (needed to update it later), plus has_more and next_offset for the following page.
Inputs
| Field | Type | Description |
|---|---|---|
| limit | integer | Rows per page (1-500, default 100) |
| offset | integer | How many data rows to skip (0-based; the header row is never counted). Use next_offset from the previous page. |
Write several rows of the connected Excel table in one call — use this to flush a batch of results instead of updating rows one at a time. Each entry needs the row_number and only the cells that changed.
Inputs
| Field | Type | Description |
|---|---|---|
| rows* | array | Rows to write. Each is {row_number, cells:{Header: value}}; only the cells you pass are changed. |
Append rows to an Excel table, matching values to columns BY HEADER NAME. The destination writer for call logs.
Inputs
| Field | Type | Description |
|---|---|---|
| rows* | array | [{cells: {header: value}}] |
Send an email from the connected Microsoft 365 mailbox via Outlook. Use when the caller asks to be emailed something — a summary, confirmation, link, or details.
Inputs
| Field | Type | Description |
|---|---|---|
| body* | string | Plain-text email body |
| subject* | string | Email subject line |
| to* | string | Recipient email address (several may be separated by commas) |
Agent templates that use Microsoft 365
Other Productivity integrations
Frequently asked questions
What can an AI voice agent do with Microsoft 365?+
During a live call or chat, a Telenow agent can check calendar availability, book a calendar event, append a row to a table, find rows in a table, update a row in a table, list rows from a table, update many rows in a table, append rows to a table, and send an email (outlook) — each runs as a tool the agent calls mid-conversation, so it acts on Microsoft 365 in real time without a human.
How do you connect Microsoft 365 to Telenow?+
In Telenow, open Integrations, pick Microsoft 365, and you connect Microsoft 365 once with OAuth — no API keys to copy. Then add its productivity tool to your agent (or install a template that already includes it) and you're live.
Which AI agent templates use Microsoft 365?+
Dental clinic receptionist, Appointment reminder & confirmation, Restaurant table reservation, Auto service scheduler, Class & session booking, Clinic appointment booking (India), SaaS demo scheduler, Outbound SDR with objection handling, Recruitment phone screen, Hotel reservation desk, Car test-drive booking, Field service dispatch, Financial advisor booking, B2B invoice follow-up, Delivery scheduling & reschedule, Post-call CSAT survey, NPS follow-up, COD order confirmation, and Failed delivery resolution (NDR) all use Microsoft 365. You can install any of them and connect your Microsoft 365 account in a couple of clicks.
Does Microsoft 365 work on phone calls and WhatsApp?+
Yes. Telenow agents run on phone, web, chat and WhatsApp, and Microsoft 365 works the same across every channel — the agent calls it whenever the conversation needs it.
How much does the Microsoft 365 integration cost?+
Connecting Microsoft 365 is included — you only pay Telenow's transparent per-minute and per-component usage, and new accounts get free signup credit to try it.
Connect Microsoft 365 to your AI voice agent
Sign up free and get $1.00 in credit — no card required. Connect your number, pick a template, and go live in minutes.