cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Powerhouse
Helper I
Helper I

Trigger Condition (if not modified by)

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? ^

1 ACCEPTED SOLUTION

Accepted Solutions

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.

View solution in original post

20 REPLIES 20
ekarim2020
Super User
Super User

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

Powerhouse
Helper I
Helper I

Hi @ekarim2020 Could you take a look at my recent posts and see what I need the modification for.. no one has been able to help me
ekarim2020
Super User
Super User

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

Powerhouse_0-1630367019457.png

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.

 

ekarim2020
Super User
Super User

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:

ekarim2020_0-1630367313565.png

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)

ekarim2020_1-1630367477211.png

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.

ekarim2020
Super User
Super User

Here is an example I have put together quickly.

The event: Test2 at 17:00 - 17:30 30 August 2021

ekarim2020_5-1630395845807.png

The details of the event and Tom Test was invited as an attendee:

ekarim2020_8-1630396124864.png

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:

ekarim2020_2-1630394796700.png

Update the event:

ekarim2020_0-1630397667509.png

My Calendar is updated:

ekarim2020_10-1630396471284.png

and Tom receives an updated Meeting invite:

ekarim2020_11-1630396514082.png

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.

 

ekarim2020
Super User
Super User

 

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:

ekarim2020_2-1630433932087.png

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

 

 

happyume
Super User
Super User

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.

ekarim2020
Super User
Super User

@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:

ekarim2020_1-1630451530431.png

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

ekarim2020_2-1630451610378.png

While is is possible to detect new, updated or deleted events - cancelled events have so far escaped me.

 
The other trigger I looked at was the When an event is added, updated or deleted (V3) -there are three type of actions: added (new event), deleted, and updated. A cancelled event is treated as an update to the calendar event
As @happyume mentioned, you would need some way to track the events. I used a SharePoint list while testing:
ekarim2020_0-1630451445844.png

The calendar events are selected based on the subject line: DEMO#90 for example, with the flow handling deleted and new events actions:

ekarim2020_4-1630451839255.png
A second flow would handle updates and cancellations - as the trigger contained the IsCancelled property mentioned above:
ekarim2020_5-1630451934985.png

That's as much progress I can make at the moment.

Ellis


 

This is spot on. I need to implement this.

ekarim2020
Super User
Super User

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:

ekarim2020_2-1630517897666.png

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) 

ekarim2020_3-1630518295562.png

ekarim2020_4-1630518330196.png

ekarim2020_8-1630518504750.png

The SharePoint List:

ekarim2020_11-1630519145687.png

Optional settings for the Title column to prevent duplicate event ID's from being saved:

ekarim2020_16-1630519698316.png

The SharePoint filter query:

ekarim2020_14-1630519522712.png

And use the correct ID and Id fields:

ekarim2020_1-1630520565748.png

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’

ekarim2020
Super User
Super User

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.

Helpful resources

Announcements
MPA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

Learn to digitize and optimize business processes and connect all your applications to share data in real time.

Power automate tips 768x460 v2.png

Restore a Deleted Flow

Did you know that you could restore a deleted flow? Check out this helpful article.

Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

May UG Leader Call Carousel 768x460.png

What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

Users online (2,662)