Hello,
we receive automated Emails with an Event that i want to add to a Calendar via Power Automate.
The Email looks like this:
Name: Firstname Lastname
Start: 05.05.2021
End: 10.05.2021
I need the "Name" as Subject , "Start" as Start Time and "End" as End Time for the Event.
I have tried multiple flows with HTML to text and Compose functions but i cant seem to get them working. I also cant seem to wrap my Head around the Variables that i can use. What would a (i think relatively simple?) flow look like?
I do have the ability to change the automatic Mail if it is needed for a solution.
Solved! Go to Solution.
Hi @LZA
You want to create an Calendar Event from an automated Email. You can combine the Last/First function and Split function to get the content of "Name" "Start" "End".
I created the flow according to your description and final test can create it. Please take a try with the following steps:
Expression:last(split(outputs('Compose'),'Name: '))
Expression:first(split(outputs('Compose_3'),'Start: '))
Expression:last(split(outputs('Compose'),'Start: '))
Expression:first(split(outputs('Compose_4'),'End: '))
Expression:last(split(outputs('Compose'),'End: '))
When a new email arrives, the calendar can be created.
You can refer to this document to see how these functions are used.
https://docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference
Hope the content above may help you.
Best Regards
Anna
Hi @LZA
Thank you for your responding.
If you want Format the Date from MM/DD/YYYY to DD/MM/YYYY. You can use expression: "formatDateTime" in Start time and End time as below:
Expression:formatDateTime(outputs('Start'),'dd-MM-yyyy')
Expression:formatDateTime(outputs('End'),'dd-MM-yyyy')
When a new email arrives , the Calendar can be created.
Hope the content above may help you.
Best Regards
Anna
Hi @LZA
Thank you for your responding.
If the Date in the automated mail is always in format dd/MM/yyyy and you can't change the format. You can split the date from email and than regroup it.
You could refer to screenshot below to modify the flow.
Insert Compose named Day under Start , the expression in the Day as below:
first(split(outputs('Start'),'.'))
The expression in the Month as below:
first(skip(split(outputs('Start'),'.'),1))
The expression in the Year as below:
last(split(outputs('Start'),'.'))
The expression in the Start date field as below:
concat(outputs('month'),'/',outputs('day'),'/',outputs('year'))
Use the same method to get the End date
Then save Flow and can test it. When receive the email as below:
The calendar can be created as below:
You can refer to this document to see how these functions are used.
https://docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference
Hope the content above may help you.
Best Regards
Anna
Hi @LZA
You want to create an Calendar Event from an automated Email. You can combine the Last/First function and Split function to get the content of "Name" "Start" "End".
I created the flow according to your description and final test can create it. Please take a try with the following steps:
Expression:last(split(outputs('Compose'),'Name: '))
Expression:first(split(outputs('Compose_3'),'Start: '))
Expression:last(split(outputs('Compose'),'Start: '))
Expression:first(split(outputs('Compose_4'),'End: '))
Expression:last(split(outputs('Compose'),'End: '))
When a new email arrives, the calendar can be created.
You can refer to this document to see how these functions are used.
https://docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference
Hope the content above may help you.
Best Regards
Anna
thanks a lot for the Help, i managed to get the Flow startet and so far everything works fine.
I was wondering, if there is a way to Format the Date to DD/MM/YYYY as it is in MM/DD/YYYY as far as i can tell.
I tried working with the expression: "formatDateTime" but i cant seem to work out where exactly i have to put it in my Flow.
Greetings
Lorenzo
Hi @LZA
Thank you for your responding.
If you want Format the Date from MM/DD/YYYY to DD/MM/YYYY. You can use expression: "formatDateTime" in Start time and End time as below:
Expression:formatDateTime(outputs('Start'),'dd-MM-yyyy')
Expression:formatDateTime(outputs('End'),'dd-MM-yyyy')
When a new email arrives , the Calendar can be created.
Hope the content above may help you.
Best Regards
Anna
Hi, the format date has worked for me now. But i ran into a different Problem.
The Date in the automail is always in format dd/MM/yyyy and i cant change the format.
An input of 10.05.2021 Begin and 11.05.2021 End works just fine, but when i change it to for example 14.05.2021 Begin and 15.05.2021 End i get an error, since there is no 15.05.2021 in a MM/dd/yyyy Format.
Is there a way to solve this Problem?
Thanks for the Help so far
Greetings
Lorenzo
Hi @LZA
Thank you for your responding.
If the Date in the automated mail is always in format dd/MM/yyyy and you can't change the format. You can split the date from email and than regroup it.
You could refer to screenshot below to modify the flow.
Insert Compose named Day under Start , the expression in the Day as below:
first(split(outputs('Start'),'.'))
The expression in the Month as below:
first(skip(split(outputs('Start'),'.'),1))
The expression in the Year as below:
last(split(outputs('Start'),'.'))
The expression in the Start date field as below:
concat(outputs('month'),'/',outputs('day'),'/',outputs('year'))
Use the same method to get the End date
Then save Flow and can test it. When receive the email as below:
The calendar can be created as below:
You can refer to this document to see how these functions are used.
https://docs.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference
Hope the content above may help you.
Best Regards
Anna
Hi, @v-duann-msft thanks for the Help so far, the formatting works just fine now,
but i encountered another small problem, i need the Event to show the last day Full but it stops on 24.05.2021 0:00 for me and therefore does not show the event on the 24th in my Calendar.
I think adding a Time, like 16:30 (HH:mm) would solve the problem. How could i add the Time to the Output of "End-Date" i tried "addHours(outputs('End-Date'),16)" but it does not work for me
I just managed to solve it with:
addDays(outputs('End Date'),0) (to get the output: "2021-05-24T00:00:00.0000000"
and then: addHours(outputs('Datum_Ende_+0'),17) to get the output: "2021-05-24T17:00:00.0000000"
This worked fine for me and now shows as wanted in the Calendar.
Thanks for the Help.
User | Count |
---|---|
93 | |
45 | |
20 | |
20 | |
16 |
User | Count |
---|---|
135 | |
56 | |
44 | |
36 | |
26 |