cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
AppDeveloper
Helper III
Helper III

sending invites in Book a room app template

Hi, 

I want to add a feature where user can send the invites to the attendees for the meeting when he books a room for a meeting. I am using Book a room template

any Idea please?

 

Regards

 

1 ACCEPTED SOLUTION

Accepted Solutions

@AppDeveloper 

1. Automatically. The function takes effect when the ConfirmationScreen become to be visible.

2. There are two drop-down control, Combo box, and Dropdown box. one of the differences is that the combo box allows multi-selection.

The Items property of combo box:

 

Office365Users.SearchUser()

 

Snipaste_2020-01-14_09-45-37.png

3. There are two Book A Room templates. please try the new one.Snipaste_2020-01-14_09-42-31.png

Sik

View solution in original post

7 REPLIES 7
eliz_talent
Helper II
Helper II

You can find here https://powerusers.microsoft.com/t5/Building-Power-Apps/Send-Calendar-Invites/m-p/302728

Office365.V2CalendarPostItem(
    Dropdown1.SelectedText.Value,
    createMeetingNameTextInput.Text,
    timeStartDatePicker.SelectedDate + Time(
        Value(startDateHr.Selected.Value),
        Value(startDateMin.Selected.Value),
        0
    ),
    timeEndDatePicker.SelectedDate + Time(
        Value(endDateHr.Selected.Value),
        Value(endDateMin.Selected.Value),
        0
    ),
    {
        Body: createMeetingObjectiveTxtInput.Text,
        IsHtml: true,
        RequiredAttendees: EmailRecipients 
    }
)
v-siky-msft
Community Support
Community Support

Hi @AppDeveloper ,

 

You can add a Combo box in RoomSelectScreen to select attendees, and then add the selected attendees into Office365.V2CalendarPostItem formulas in ConfirmationScreen. Please check the steps.

1. Add a combo box in RoomSelectScreen, set Onchange property:

 

Set(VarAttendees,Concat(ComboBox1.SelectedItems,Mail&";"))

 

Snipaste_2020-01-07_15-27-46.png

2. Modify the OnVisible property of ConfirmationScreen, add VarAttendees variable into the RequiredAttendees parameter in Office365.V2CalendarPostItem function. You can replace OnVisible property by the following codes directly.

 

If(IsBooking,
    UpdateContext({ShowLoading: true});
    If(OnlineMeeting,
        Set(OutlookMeeting, Office365.V2CalendarPostItem(
            LookUp(Office365.CalendarGetTables().value,DisplayName=LookUp(CalendarLocalizedLabel,Value=DisplayName).Value).DisplayName,
            "Outlook Meeting for " & If(BookForMeeting, MeetingsGallery.Selected.Subject, User().FullName),
         StartDateTime,
         DateAdd(StartDateTime,1,Days),{RequiredAttendees:VarAttendees}));

        If(BookForMeeting,
        
            ClearCollect(RequiredAttendeesNoRoom, Split(MeetingsGallery.Selected.RequiredAttendees, ";"));
            ForAll(AllRooms, RemoveIf(RequiredAttendeesNoRoom, Address = Result));
            ClearCollect(RequiredAttendeesNoRoom, Concat(RequiredAttendeesNoRoom, Result & ";"));
            ClearCollect(RequiredAttendeesNoRoom, Split(First(RequiredAttendeesNoRoom).Value, ";;"));
            Set(RequiredAttendeesFinal, First(RequiredAttendeesNoRoom).Result);
            Set(RequiredAttendeesTrue, RequiredAttendeesFinal);
            Office365.V2CalendarPatchItem(MyCalendar, MeetingsGallery.Selected.Id, If(MeetingsGallery.Selected.Subject = User().FullName & "'s Booking", User().FullName & "'s Meeting",
            MeetingsGallery.Selected.Subject), StartDateTimeUTC, EndDateTimeUTC, {RequiredAttendees: RequiredAttendeesTrue & ";" & VarAttendees, OptionalAttendees: MeetingsGallery.Selected.OptionalAttendees,
            Body: "<a href="&OutlookMeeting.Location&">Join Meeting</a>", IsHtml:true, Location: "Online Meeting", Importance: "Normal", ShowAs: "Busy"}),

            Office365.V2CalendarPostItem(MyCalendar, User().FullName & "'s Meeting", StartDateTimeUTC, EndDateTimeUTC, {Body:"<a href="&OutlookMeeting.Location&">Join Meeting</a>", 
            IsHtml:true, Location: "Online Meeting", Importance: "Normal", ShowAs: "Busy"})),



        If(!BookForMeeting,
            Office365.V2CalendarPostItem(MyCalendar, User().FullName & "'s Booking", StartDateTimeUTC, EndDateTimeUTC, 
            {RequiredAttendees:RoomsGallery.Selected.Email &";"& VarAttendees, Location: RoomsGallery.Selected.Name, Importance: "Normal", ShowAs: "Busy"}),
            
            ClearCollect(RequiredAttendeesNoRoom, Split(MeetingsGallery.Selected.RequiredAttendees, ";"));
            ForAll(AllRooms, RemoveIf(RequiredAttendeesNoRoom, Address = Result));
            ClearCollect(RequiredAttendeesNoRoom, Concat(RequiredAttendeesNoRoom, Result & ";"));
            ClearCollect(RequiredAttendeesNoRoom, Split(First(RequiredAttendeesNoRoom).Value, ";;"));
            Set(RequiredAttendeesFinal, First(RequiredAttendeesNoRoom).Result);
            Set(RequiredAttendeesTrue, RoomsGallery.Selected.Email & ";" & RequiredAttendeesFinal);
            Office365.V2CalendarPatchItem(MyCalendar, MeetingsGallery.Selected.Id, If(MeetingsGallery.Selected.Subject = User().FullName & "'s  Meeting", User().FullName & "'s Booking", MeetingsGallery.Selected.Subject), StartDateTimeUTC, EndDateTimeUTC, {RequiredAttendees: RequiredAttendeesTrue&";"&VarAttendees, OptionalAttendees: MeetingsGallery.Selected.OptionalAttendees, Body: "Room has been updated to " & RoomsGallery.Selected.Name, Location: RoomsGallery.Selected.Name, Importance: "Normal", ShowAs: "Busy"})
            )
    );
    UpdateContext({ShowLoading: false})
);
Set(IsBooking, false)

 

Four modifications in total: 

Snipaste_2020-01-07_15-37-38.pngSnipaste_2020-01-07_15-37-56.png

Sik

 

 

 

Hi @v-siky-msft 

 

Thanks for your reply. I am going to try this solution this week. but before i do that will that send an automatic email to all attendees? or that is a separate setup?

 

Regards

 

Hi @v-siky-msft 

 

Also I am a little bit confused with step 1. it says to add Combo box but in screen shot it is a drop down list? where this list is getting users(data source of this list??)

 

Regards

 

Hi

 

Also I noticed that the first few lines of the code on confirmation screen is different from what you have shared. 

If(IsBooking,
    UpdateContext({ShowLoading: true});
    If(OnlineMeeting,
        Set(SkypeMeeting, SkypeForBusiness.CreateMeeting("Skype Meeting for " & If(BookForMeeting, MeetingsGallery.Selected.Subject, User().FullName), {ExpirationDateTime: Text(DateAdd(StartDateTime, 1, Days), UTC)}));

how to add those changes here when it is not using PostItem method? The rest is fine

 

Regards

 

@AppDeveloper 

1. Automatically. The function takes effect when the ConfirmationScreen become to be visible.

2. There are two drop-down control, Combo box, and Dropdown box. one of the differences is that the combo box allows multi-selection.

The Items property of combo box:

 

Office365Users.SearchUser()

 

Snipaste_2020-01-14_09-45-37.png

3. There are two Book A Room templates. please try the new one.Snipaste_2020-01-14_09-42-31.png

Sik

View solution in original post

Hi ! 

 

Is it possible to allow there to be no drop box for the combo box just a search?

 

 

Helpful resources

Announcements
PA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

MBAS Attendee Badge

Claim Your Badge & Digital Swag!

Check out how to claim yours today!

secondImage

Are Your Ready?

Test your skills now with the Cloud Skill Challenge.

secondImage

Demo Extravaganza is Back!

We are excited to announce that Demo Extravaganza for 2021 has started!

MBAS on Demand

Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks

Top Solution Authors
Top Kudoed Authors
Users online (66,102)