- Home
- Guides
- Calendar & Scheduling
- How to auto-send Outlook calendar invites from Microsoft Forms with Power Automate
How to auto-send Outlook calendar invites from Microsoft Forms with Power Automate
Build a booking form in Microsoft Forms and a Power Automate flow that turns each response into an Outlook calendar invite for the person who filled it in. Swap one action to send a Teams meeting instead.
Jump to a step (9)
When people book a consultation or appointment through a form, someone has to read each response, open the calendar, create the meeting and invite the person by hand. It is slow, it happens outside working hours, and typing the wrong date or time is easy.
Microsoft Forms returns the date and the time slot as two separate answers, but the Outlook Create event action needs one combined date and time. The flow uses a small JSON time map to turn a slot like 2:00 PM into 14:00:00, joins it to the date with concat, adds one hour for the end time, and creates the event with the form respondent as a required attendee.
Everything uses standard connectors (Microsoft Forms, Office 365 Outlook and Microsoft Teams), so no premium licence is needed.
What you need
- Microsoft 365 Business Basic or Standard with Microsoft Forms, Outlook and Power Automate
- A Microsoft Form with name, email, date, time slot and an optional reason question
- Microsoft Teams, only if you want the Teams meeting version
Step by step
0 of 9 done-
01
Create the booking form
Go to forms.microsoft.com and select New Form. Title it
Book a consultationand add:Full name: Text, required.Email address: Text, required. Under More settings, choose Restrictions and set it toEmailso only email addresses are accepted.Meeting date: Date, required.Meeting time: Choice, required, with options such as10:00 AM,11:00 AM,2:00 PMand3:00 PM.Reason for meeting: Text, optional.
Preview the form to check it.
-
02
Create the flow and get the response details
In Power Automate (make.powerautomate.com), select Create and Automated cloud flow. Name it
Book a consultationand choose the Microsoft Forms trigger When a new response is submitted. Select your form inForm Id.Add Get response details, pick the same form, and set
Response IdtoResponse Idfrom the trigger. -
03
Add a Time Map compose
Add a Compose action and rename it
Time Map. InInputs, paste a JSON object that maps each choice to its 24-hour time:{"10:00 AM": "10:00:00", "11:00 AM": "11:00:00", "2:00 PM": "14:00:00", "3:00 PM": "15:00:00"}The keys must match your choice options exactly. If you add more time slots to the form, add them here too.
-
04
Combine the date and time into a start value
Add a Compose named
Start Date. Open the expression editor and build:concat(<Meeting date>, 'T', outputs('Time_Map')?[<Meeting time>])Insert
Meeting dateandMeeting timefrom Get response details using dynamic content. The capitalTbetween date and time is required because the calendar action expects the format2026-04-20T14:00:00. The?[...]part looks up the chosen slot in the time map. Keep everything inside theconcat(...)parentheses; the video shows fixing a misplaced bracket here. -
05
Calculate the end time
Add a Compose named
End Timewith this expression:addHours(outputs('Start_Date'),1)This makes every meeting one hour long. Change the
1for a different length. -
06
Create the Outlook event and invite the respondent
Add the Office 365 Outlook action Create event (V4):
Calendar id:CalendarSubject:Consultation -thenFull namefrom dynamic content, then your own name.Start time: output ofStart DateEnd time: output ofEnd TimeTime zone: your local time zone
Under Advanced parameters, add
Required attendees. Select the settings icon next to the field, choose Use dynamic content, and pickEmail addressfrom the form. Also addBody, for example:Hi+Full name+, your consultation has been confirmed. Reason:+Reason for meeting. Save the flow. -
07
Test the flow
Select Test, choose Manually, then fill in the form in preview. Pick a date and
2:00 PM. The run should succeed, and your calendar shows the event from 2:00 PM to 3:00 PM with the respondent as an attendee. The respondent gets the invite in their inbox with Accept, Tentative and Decline options. -
08
Send a Teams meeting instead
To include a Teams link, delete Create event (V4) and add the Microsoft Teams action Create a Teams meeting:
Subject:Consultation with+Full name- Message (body):
Hi+Full name+, your meeting has been confirmed. Please use the Teams link to join the meeting. Time zone: your local time zoneStart timeandEnd time: the Start Date and End Time outputsCalendar id: your calendar- Advanced parameters >
Required attendees:Email address(using Use dynamic content)
The form and the date and time logic stay the same. You only swap the last action.
-
09
Test the Teams version
Save, test manually and submit another response with a different date and time. The event appears in your calendar with a Teams link, and the attendee can join directly from the invite.
Tips and common problems
- The time map keys must match the Forms choice text exactly, including spacing and AM/PM. A mismatch returns an empty time and the event fails.
- Set the event time zone to your local zone. The start and end values have no offset, so the time zone field decides when the meeting happens.
- If
Required attendeeswill not accept the form's email, switch the field to Use dynamic content from its settings icon first. - Restrict the email question to
Emailin Forms so a typo does not break the invite. - When you add time slots to the form, update the Time Map compose at the same time.
Calendar invite or Teams meeting?
| You need | Last action | Connector |
|---|---|---|
| A calendar invite only | Create event (V4) | Office 365 Outlook |
| A calendar invite with a Teams join link | Create a Teams meeting | Microsoft Teams |
The form, Get response details, Time Map, Start Date and End Time actions are the same in both versions.
Questions
Can Microsoft Forms send a calendar invite?
Not on its own. Forms only collects the answers. A Power Automate flow triggered by When a new response is submitted can create an Outlook event with the respondent as a required attendee, which sends the invite.
How do I combine a date and time from Microsoft Forms in Power Automate?
Use concat() to join the date, a capital T, and a 24-hour time, for example concat(<Meeting date>,'T',outputs('Time_Map')?[<Meeting time>]). A JSON time map converts 12-hour choices like 2:00 PM to 14:00:00.
How do I add a Teams link to the invite?
Replace Create event (V4) with the Microsoft Teams action Create a Teams meeting and add the respondent as a required attendee. The rest of the flow stays the same.
Do I need a premium Power Automate licence?
No. Microsoft Forms, Office 365 Outlook and Microsoft Teams are standard connectors included with Microsoft 365 business plans.
