Hello all!
What is the trigger condition if I want to say:
if the event is NOT modifed by myself
@not(equals(triggerOutputs()?['Modified'],'myemailadress.com'))
would this work? ^
Solved! Go to Solution.
You can solve this use-case in three stages
Stage1
1.1 Create a SharePoint List with two columns: One for storing original event ID, and other for storing duplicate event ID
Stage 2
2.1 Create a Automated cloud Flow with trigger: When an event is created
2.2 Under trigger condition, only run when you are NOT the organizer - this is important to avoid infinite loop
2.3 Add an action to Create Event, send it out to the desired list of people
2.4 Add an action to Create Row in SharePoint, and add event ID from trigger (original event) and event ID from create event (duplicate event)
Stage 3
3.1 Create an automated Flow when an event is added, updated, or cancelled
3.2 Under trigger condition, only run when you are NOT the organizer - this is important to avoid infinite loop
3.3 Under trigger condition, only run when action type is updated or deleted
3.4 Add a Get Items action from SharePoint and using event ID from trigger, fetch the duplicate event ID from your SharePoint List using Filter Query
3.5 Add a switch control and add cases for updated and deleted
3.5.1 Under updated branch, add action to update your duplicate event - remember to use required attendees same as step 2.3; remaining properties you copy from original event in the trigger
3.5.2 Under deleted branch, add action to delete your duplicate event
Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If this post or my previous reply was useful in other ways, please consider giving it Thumbs Up.
This seems possible, but it depends on the trigger. For example, in some triggers such as SharePoint, Modified is a column of type date.
Here is a really good introduction to using Trigger Conditions in Power Automate: https://youtu.be/tlS6pSAx-GY .It also covers how to successfully create the expressions needed for the trigger condition.
Ellis
Can you post the screenshot of the trigger you are using, and sample data.
Ellis
I have this first flow. When someone forwards me an event, it will automatically create an event with those exact same meeting details and then forward it to a group of people I have as the required attendees. My question is.. if the organizer who sent me the meeting changes the time, or cancels the meeting, this is not updated for the users I forwarded the meeting to. I assume I need to create another flow to do this in outlook, but I am not sure how
In my next flow, I have thought about using the trigger "When an event is modified" and then in the trigger condition having something that says if the event is modified, then update the event, but this is not working at all.
I would need to look at this, as this is something I haven't need to do.
Rather than forward the calendar invite, can you add the required attendees to the Create event? In this way if the creator changes the meeting details, it is more likely that you can update the other attendees:
To update the event at a later date, you are going to need the Calendar ID and the ID of the event -or you will need to search for it in order to update it (Get Events)
Ellis
Hey!
I appreicate your help. Currently I am doing what you are saying.. under my create event, I have put required attendees there and attached the body and subject line of the original meeting. I am doing exactly what you are saying, adding those users under required attendees in "Create Event." The problem is the UPDATING itself. How would I go about using the calendar ID and get events? I have tried doing this before and I havn't been able to get it to work.
Here is an example I have put together quickly.
The event: Test2 at 17:00 - 17:30 30 August 2021
The details of the event and Tom Test was invited as an attendee:
One way to update the Event is to use Get Events to search for the Event, then update it. I will search based on the subject line, but you should ensure that it is unique if you need it to return and update only one event result:
Update the event:
My Calendar is updated:
and Tom receives an updated Meeting invite:
I had to convert the start and end times to my local time zone for the demo. I can look into this later:
convertTimeZone(items('Apply_to_each')?['start'], 'UTC','GMT Standard Time')
convertTimeZone(items('Apply_to_each')?['end'], 'UTC','GMT Standard Time')
See convertTimeZone
Hope this helps.
Ellis
I appreciate your help, but this would not be an acceptable solution.
@ekarim2020 I am recieving an event from someone. I am THEN CREATING A DUPLICATE MEETING at the same time with the same meeting details. This is what I need to update the time for.
The only suitable trigger condition I could find to test against is the organizer. So, if an event is modified, and the organizer of the event is not AlexW@microsoft.com the event will trigger:
The body contains the following properties that could be checked:
"subject": "TEST EVENT",
"start": "2021-09-01T07:00:00.0000000",
"end": "2021-09-01T07:30:00.0000000",
"startWithTimeZone": "2021-09-01T07:00:00+00:00",
"endWithTimeZone": "2021-09-01T07:30:00+00:00",
"body": "<html>\r\n<head>\......",
"isHtml": true,
"responseType": "notResponded",
"responseTime": "0001-01-01T00:00:00+00:00",
"id": "AAMkADE0ZGY3Zjl.....",
"createdDateTime": "2021-08-31T18:00:20.6523652+00:00",
"lastModifiedDateTime": "2021-08-31T18:02:21.8659677+00:00",
"organizer": "AlexW@microsoft.com",
"timeZone": "UTC",
"iCalUId": "040000008200E00074C5B7.......",
"categories": [],
"webLink": "https://outlook.office365.com............",
"requiredAttendees": "AlexW@microsoft.com;Ellis@world9090.uk;",
"optionalAttendees": "",
"resourceAttendees": "",
"location": "",
"importance": "normal",
"isAllDay": false,
"recurrence": "none",
"reminderMinutesBeforeStart": 15,
"isReminderOn": true,
"showAs": "tentative",
"responseRequested": true,
"sensitivity": "normal
You could then use Get Items to search for the Event in question and update it.
Ellis
If I understand correctly:
- You are receiving an event in mailbox of A from people in your organization.
- Power Automate triggers and create a duplicate event for some pre-selected group of people.
- You DO NOT want to "forward event" from mailbox of A, but would rather have a duplicate event created with A being the organizer
- When the original event is modified, you want the corresponding duplicate event to be modified
If the above is correct then each time you create the duplicate event from mailbox of A - you need to store somewhere (Excel or SharePoint List) a relationship between original event ID and duplicate event ID.
Now, whenever an event is modified, you get its ID and then find corresponding duplicate event ID.
Finally, update event using duplicate event ID.
Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If this post or my previous reply was useful in other ways, please consider giving it Thumbs Up.
@Powerhouse I have been trying to find a trigger or property that can be used to detect cancelled events. There is a pre-built template but this does not seem to work and others have reported the same issue:
This uses the trigger When an even is modified and has a property IsCancelled, but this is always set to false - even when an event is cancelled: "IsCancelled": false
While is is possible to detect new, updated or deleted events - cancelled events have so far escaped me.
The calendar events are selected based on the subject line: DEMO#90 for example, with the flow handling deleted and new events actions:
That's as much progress I can make at the moment.
Ellis
This is spot on. I need to implement this.
Here are some of the details of the demo flow, though I still think you should be able to find a better way, simpler way to achieve your desired outcome. But this should give you some ideas for now:
The flow charting app I used is is Draw IO, free at https://www.diagrams.net/ .
Trigger condition: checks the organizer and event subject: (organizer IS NOT EQUAL TO ekarim@somemail.com ) AND (subject EQUALS 'DEMO#90'):
@And(not(equals(triggerBody()?['organizer'], 'ek@somemail.com')), startsWith(triggerBody()?['subject'], 'DEMO#90'))
The above is '@and' - incase the text gets converted by the editor to @And ❌.
You just need to find and settle on the most appropriate trigger condition for your needs so as to avoid false activations of the trigger. Trigger info: When an event is added, updated or deleted (V3)
The SharePoint List:
Optional settings for the Title column to prevent duplicate event ID's from being saved:
The SharePoint filter query:
And use the correct ID and Id fields:
Hope this helps.
Ellis
I appreciate this
my question is.. I don’t want to restrict the flow to trigger only when a subject is a certain title. I need it to work for any subject. Not all the events forwarded to me will start with “demo90’
Organizer and subject test (✔@and, NOT ❌@And below):
@And(not(equals(triggerBody()?['organizer'], 'ek@mail.com')), startsWith(triggerBody()?['subject'], 'DEMO#90'))
Organizer test
@not(equals(triggerBody()?['organizer'], 'ek@mail.com'))
The organizer is me since I am creating a duplicate event. The original organizer who sent me the event could be anyone
You can solve this use-case in three stages
Stage1
1.1 Create a SharePoint List with two columns: One for storing original event ID, and other for storing duplicate event ID
Stage 2
2.1 Create a Automated cloud Flow with trigger: When an event is created
2.2 Under trigger condition, only run when you are NOT the organizer - this is important to avoid infinite loop
2.3 Add an action to Create Event, send it out to the desired list of people
2.4 Add an action to Create Row in SharePoint, and add event ID from trigger (original event) and event ID from create event (duplicate event)
Stage 3
3.1 Create an automated Flow when an event is added, updated, or cancelled
3.2 Under trigger condition, only run when you are NOT the organizer - this is important to avoid infinite loop
3.3 Under trigger condition, only run when action type is updated or deleted
3.4 Add a Get Items action from SharePoint and using event ID from trigger, fetch the duplicate event ID from your SharePoint List using Filter Query
3.5 Add a switch control and add cases for updated and deleted
3.5.1 Under updated branch, add action to update your duplicate event - remember to use required attendees same as step 2.3; remaining properties you copy from original event in the trigger
3.5.2 Under deleted branch, add action to delete your duplicate event
Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If this post or my previous reply was useful in other ways, please consider giving it Thumbs Up.
See partial trigger condition for step 3.3 - checks whether action type is updated or not. You will need to check for updated OR deleted.
@equals(triggerOutputs()?['body/ActionType'],'updated')
See sample trigger condition for step 2.2 and 3.2 - checks whether organizer of event is YOUREMAIL@DOMAIN.COM or not.
@not(equals(triggerOutputs()?['body/organizer'],'YOUREMAIL@DOMAIN.COM'))
Please click Accept as solution if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If this post or my previous reply was useful in other ways, please consider giving it Thumbs Up.
It seems that all deleted events go through the update branch and instead of removing the events from calendar, the event subject just changes to "Cancelled" How do I go about deleting the events instead of them all going through the updated switch.
User | Count |
---|---|
95 | |
39 | |
25 | |
22 | |
16 |
User | Count |
---|---|
129 | |
51 | |
48 | |
35 | |
24 |