I would like to create an all day event in Google calendar when an all day event is created in Outlook. Currently if an all day event is created in Outlook, it becomes a 2 day event with start and end times in Google calendar. This is using the Sync events from Office 365 Outlook Calendar to Google Calendar template.
When testing with the All day event, I got the same issue with you.
Then I tried to convert the timezone from UTC to Pacific Standard time using the ConvertTimeZone function.
First, using the Compose action to convert time with the following code:
converttimezone(triggerBody()?['End'],'UTC','Pacific standard time')
Second, in the Google calendar action Create an event, enter the following code for the End time field:
When an All day event is created in Outlook calendar, it will be created on the Google calendar without issue.
Please have a try with it on your side.
Thanks for the reply. I finally got around to trying it. Unfortunately my flow looks to be a little different and I could not make your solution work for it. The flow I have is "Sync events from Office 365 Calendar to Google Calendar" so it runs whenever any event changes take place in Outlook. Creating an all-day event is just one thing. So I do not have the place to add a start and end time to the event. I tried to add a screenshot of my flow but could not figure out how to do so.
No, I have not figured it out. I have just put up with it. I keep hoping someone more familiar with Flow templates will make one that does not have the issue.
I ran into this issue myself and was able to come up with a solution that seems to work perfectly.
Immediately after the "Check if it is a google calendar" action (If yes), I added a new condition for "Check if all day event". For the first value, I used the Dynamic content "Is all day event?" from the Dynamic content, then "is equal to" the value "TRUE".
From that, I cloned the original "Html to text" and "Create an event" actions under both the Yes and No conditions. For the "Create an event" action on the "Yes" side (i.e. for O365 all-day events), I updated the substring to make sure it was using the appropriate Html to text output (since they have unique names), then set the last option for "Is all-day" to "Yes".
I then did the same thing on the "No" side of the "Is all day event?" condition, with the only difference being that the last setting is then set to "No".
I found that once the "Is all-day" setting was set correctly for Google Calendar, the event started showing up on the correct day (as it completely ignores start and end time).
I hope this helps!
hmmm what flow exactly are you using? It seems there are a couple similar ones - asking because I don't see the action for check if google calendar. Mine is "Sync events from Office 365 Calendar to Google Calendar."
thanks for your instructions! You are more advanced than I. I can't figure out how to clone the action other than manually, and also not sure about your next instructions. If you happen to have a moment, further detalis would be really helpful! Thanks again.
Hi @fclifton and @amsw, I started with the Sync events from Office 365 Calendar to Google Calendar template, which I then edited to add the "Is all day event?" condition toward the end of the flow.
I did have to manually re-create and copy the configurations for the "Html to text" conversion and the "Create an event" action for Google Calendar, as I don't think there is an option to actually clone it. One slightly tricky spot was getting the event description set correctly for the "Create an event" action, as that is set with a substring expression. I was able to click on the substring and copy the contents of the original expression from the template.
Just to note, because you are creating two new "Html to text" conversion actions, they will get unique names (e.g. I renamed my new Html to text conversions to "Html to text - all-day" and "Html to text - partial day"), and this name is referenced twice in that substring. You will need to make sure that the substring expressions in each "Create an event" action are referencing their respective "Html to text" conversion output for their branch.
Oh and another note, the screenshot above is from my edited flow, so you can see where I edited the reference to the "Html to text" conversion to reference my custom name.
In the substring, the original expression simply reference 'Html_to_text', as the name of the original conversion action was "Html to text".
Since my new conversion was renamed to "Html to text - all-day", the substring needed to reference 'Html_to_text_-_all-day' (so you just replace any spaces with underscores). That's what the long arrow is intended to point to.
WOW thank you so much. I think i'm close... however now it's create two events when i add one. So if i add one all day event, it's adding one all day event in the google calendar (now correctly!! YES) and STILL adding one starting at 8pm the day before. It's also doing this if I add an event with a specific time , and is showing two of the same event at the same time. DId I miss something? Do I need to take the first "create events in google calendar" If yes / html to text (original one) and "create an event" out?
dunno if you can see.... the bottom is where I added what you said to, so this is directly before and i didn't touch it. feels like this is likely why its duplicating?
Any chance you could post a link to the exported ZIP of this Flow? I'm getting confused as to where the "Is all day" field in the create a GCal event is coming from and I'm assuming it's from an earlier step I don't see. Much appreciated if you can!
ahh I'm really sorry and I so appreciate your time, but I don't know how to do that. i see where i can export as a packaged .zip but not sure how to link that to here!
If you're using OneDrive for Business, you could upload it and get a public sharing link. If you prefer not to use OD, I just tested https://quickfileshare.org/, which, after you upload the file, will provide the public-facing URL for someone else to download. No signup or payment required. Then paste the URL here as a response.