1. Home
  2. Guides
  3. Calendar & Scheduling
  4. How to auto-send Outlook calendar invites from Microsoft Forms with Power Automate
Calendar & Scheduling

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.

  • By Nur Islam
  • 12:24 video
  • 9 steps
  • 3.3K views
Jump to a step (9)
Who this is for

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
  1. 01

    Create the booking form

    Go to forms.microsoft.com and select New Form. Title it Book a consultation and add:

    • Full name: Text, required.
    • Email address: Text, required. Under More settings, choose Restrictions and set it to Email so only email addresses are accepted.
    • Meeting date: Date, required.
    • Meeting time: Choice, required, with options such as 10:00 AM, 11:00 AM, 2:00 PM and 3:00 PM.
    • Reason for meeting: Text, optional.

    Preview the form to check it.

  2. 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 consultation and choose the Microsoft Forms trigger When a new response is submitted. Select your form in Form Id.

    Add Get response details, pick the same form, and set Response Id to Response Id from the trigger.

  3. 03

    Add a Time Map compose

    Add a Compose action and rename it Time Map. In Inputs, 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.

  4. 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 date and Meeting time from Get response details using dynamic content. The capital T between date and time is required because the calendar action expects the format 2026-04-20T14:00:00. The ?[...] part looks up the chosen slot in the time map. Keep everything inside the concat(...) parentheses; the video shows fixing a misplaced bracket here.

  5. 05

    Calculate the end time

    Add a Compose named End Time with this expression:

    addHours(outputs('Start_Date'),1)

    This makes every meeting one hour long. Change the 1 for a different length.

  6. 06

    Create the Outlook event and invite the respondent

    Add the Office 365 Outlook action Create event (V4):

    • Calendar id: Calendar
    • Subject: Consultation - then Full name from dynamic content, then your own name.
    • Start time: output of Start Date
    • End time: output of End Time
    • Time zone: your local time zone

    Under Advanced parameters, add Required attendees. Select the settings icon next to the field, choose Use dynamic content, and pick Email address from the form. Also add Body, for example: Hi + Full name + , your consultation has been confirmed. Reason: + Reason for meeting. Save the flow.

  7. 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.

  8. 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 zone
    • Start time and End time: the Start Date and End Time outputs
    • Calendar 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.

  9. 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 attendees will not accept the form's email, switch the field to Use dynamic content from its settings icon first.
  • Restrict the email question to Email in 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.
Still stuck? Ask AI to help you fix itChatGPTClaudeGeminiCopilotPerplexityGrok

Calendar invite or Teams meeting?

You needLast actionConnector
A calendar invite onlyCreate event (V4)Office 365 Outlook
A calendar invite with a Teams join linkCreate a Teams meetingMicrosoft 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.

Video chapters
Ask a question in the comments Last checked 26 Sep 2026. Screens change: if a step looks different, tell me in the comments.