cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
KGuthrie-NF
Helper I
Helper I

Power Apps with Power Automate flow to add Calendar event

Hello all,

I am just learning how to use all the Microsoft Power 'stuff'.  I followed an online guide to create a vacation request Power App with the data stored in a Sharepoint List.  That part is working great.  It also notifies the user's manager of the request with approval.  The guide I followed is here.  I am trying to take it one step more by adding a calendar event on the submitter's calendar with the vacation request.  After some digging it seems like the best way is to use a "Get calendars (V2)" block.  The array that is generated from that is then filtered in a for each to look for the "Calendar" calendar and then create the event on that calendar.  Everything with the creation of the event works.

 

The problem I am having is no matter the user who submits the request, the calendar event ALWAYS ends up on my calendar, not theirs.  

 

KGuthrieNF_3-1653581506322.png

 

KGuthrieNF_4-1653581523545.png

 

KGuthrieNF_5-1653581543903.png

 

 

 

 

 

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

Hi @KGuthrie-NF 

 

Depending on what you want to do with the Calendar event, you can also just create it directly from PowerApps too.  There is an Outlook Connector - Office365Outlook.

 

DamoBird365_0-1653594124244.png

 

It can be called with the following expression:

 

Office365Outlook.V4CalendarPostItem("Calendar","This is a calendar event created from PowerApps","2022/05/26 09:00","2022/05/26 17:00","(UTC+00:00) Dublin, Edinburgh, Lisbon, London")

 

This would mean that you do not need PowerAutomate.  I have run this solution as another user and it creates the calendar event in their calendar.

 

Failing that, if you want to use PowerAutomate, use the PowerApps V2 Trigger 

 

DamoBird365_1-1653594282704.png

The flow connector will run as user:

DamoBird365_2-1653594400532.png

Make sure you update the calendar name in flow with a custom value "Calendar" or you will get an error.

 

Cheers,

 

Damien

View solution in original post

13 REPLIES 13
DamoBird365
Microsoft
Microsoft

Hi @KGuthrie-NF 

 

You want the action to run in the context of requesting user.  The easiest way to do this is to change run only permissions but that can only be done if the trigger is in the context of the user.  When an item created is in the context of the flow owner - i.e. you.  Could you change the flow trigger to be from PowerApps using the V2 trigger?  Then you would create the item via this flow.  This would also allow you to run the calendar action in the context of the user and it would therefore be in their calendar.

 

DamoBird365_0-1653582253439.png

 

Manage owners and users in your Microsoft list flows with Power Automate | Microsoft Docs - specifically run only users.

 

Damien

 

So I have been looking into this solution, however, it won't work for this application.  I have even tried to modify your solution by using the PowerApps V1 trigger.  

I also am not seeing the run-only permissions card.

Hi @KGuthrie-NF 

 

It would have to be v2. Can you explain why it won’t. Is it an error or something else that needs overcome?

 

Damien

I guess the biggest reason is the ability to track the user vacations in a SharePoint list.  Currently, they enter the details in a PowerApp.  The Submit button adds the values to the list, then this triggers the flow.  

 

KGuthrieNF_0-1653590146862.png

Can the same thing still be accomplished with PowerApps v2?

 

Hi @KGuthrie-NF 

 

Is this a patch or a form or all done via a flow? You could just have a flow that creates the event. You might even be able to create the event straight from PowerApps too. I would need to check.

 

Damien

I'm not sure what you mean. 


Is this a patch or a form or all done via a flow?


The idea was to create a simple way for users to request vacation from our SharePoint site.  I may be overcomplicating it, but the users don't want to do another step of creating the vacation on their calendars once it is approved.  

 

So the current process I am trying to get working...

1.  Open a Power App.

2.  Enter info for vacation.

3.  Press Submit

    a. The button action is to submit the form to the SharePoint list that holds all the data.

    b. The creation of a new item triggers a flow to start the approval process

        i. First the flow gets the user that created the new item on the list.  

        ii. Based on the user a manager is found for the approver.

        iii.  A calendar item is created on the submitter's calendar as a "tentative" event.

        iv.  An approval is started

        v.  Based on the approval the calender even is changed to out of office or deleted.

        vi. Based on the approval an email is sent to the submitter stating if the vacation was approved or rejected.

 

Hi @KGuthrie-NF 

 

You’ve got a PowerApps form 👍 you can call a flow when the form submits.  That flow could create the event in the calendar and run in the context of the app user.

Damien

Yes.  That is what I am trying to do.  However, from what I can tell this needs to use SharePoint V1 trigger.  Right?

@KGuthrie-NF you’ll need to use the PowerApps trigger v2. If you’re not sure I can try and put together a proof of concept. Built ultimately you swap out the existing trigger for when an item is created and instead run the flow directly from the submit button. This will allow the flow to run as your user and not as you.

 

Damien

KGuthrie-NF
Helper I
Helper I

I think I have something like that...  

 

KGuthrieNF_0-1653592912742.png

 

Hi @KGuthrie-NF 

 

Nearly, you could still have the form create the item when you submit. The flow just needs to do the outlook bit. Then you’ve still got the list item you want. So from the image above, drop the create item action. If there is data you need to capture from the list item, you can use get item and pass the item id to the flow.

 

Damien

Hi @KGuthrie-NF 

 

Depending on what you want to do with the Calendar event, you can also just create it directly from PowerApps too.  There is an Outlook Connector - Office365Outlook.

 

DamoBird365_0-1653594124244.png

 

It can be called with the following expression:

 

Office365Outlook.V4CalendarPostItem("Calendar","This is a calendar event created from PowerApps","2022/05/26 09:00","2022/05/26 17:00","(UTC+00:00) Dublin, Edinburgh, Lisbon, London")

 

This would mean that you do not need PowerAutomate.  I have run this solution as another user and it creates the calendar event in their calendar.

 

Failing that, if you want to use PowerAutomate, use the PowerApps V2 Trigger 

 

DamoBird365_1-1653594282704.png

The flow connector will run as user:

DamoBird365_2-1653594400532.png

Make sure you update the calendar name in flow with a custom value "Calendar" or you will get an error.

 

Cheers,

 

Damien

KGuthrie-NF
Helper I
Helper I

Thank you for your help!  

I was able to get it working.  It is also MUCH easier to follow than the last go-around I was attempting.   I ended up using the PowerApps (V2) in a flow that does all the heavy lifting.  

KGuthrieNF_0-1653599299887.png

 

KGuthrieNF_1-1653599310014.png

 



Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Community Calls Conversations

Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Users online (2,188)