Condition to only run on certain days and time ranges Microsoft Flow? - power-automate

I'd like to setup a Microsoft Flow trigger in Office 365 so that if I get an email from a specific set of people after hours, or on the weekend that I'd get a notification from the app. I've got the people portion figured out, and I see they have an "equals" condition for the receive time, but how can I filter by day / time range?

I haven't done this before, but look into the dayOfWeek() and startOfHour() functions.
You can figure out if its a weekend using dayOfWeek(), and for the weekdays use startOfHour() to know if the time is greater than or less than your preference.
-Chris

Related

How short are "short periods of time" in Google calendar API for real?

I'm developing an application, which needs to use calendar and I've decided to try a ready-made solution - Google Calendar API. I'm making calls from my backend to google and I only store calendars' and ids in my database, everything else is stored in google. So I'm writing a proxy basically and everything is going ok, but I've bumped into this article https://support.google.com/a/answer/2905486?hl=en, and now I'm really worried about those "short periods of time" in exceeding limits. I haven't found more accurate numbers. Well, if those "short periods of time" are ~1h, then I'm in the trouble and I need to implement my own calendar system. Can anyone dispel my doubts? This is not a pet-project.
Answer:
There's no public official information regarding the exact period this is referring to.
Nevertheless, after some testing, it seems like the short periods of time are longer than what your workflow would require.
Research:
Since the limit that is troubling you is calendar creation (from Avoid Calendar use limits):
If you create more than 60 new calendars in a short period, your calendar might go into read-only mode for several hours.
I did some tests with a Workspace account, in order to see what's the maximum rate of calendar creation that won't result in this limit being exceeded.
More specifically, I tried creating calendars periodically, with several different periods, ranging from 5 seconds to 15 minutes.
For most of these periods (from 5 seconds to 10 minutes at least), the following exception started showing up after creating 40-something calendars approximately:
You have been creating or deleting too many calendars or calendar events in a short time
After this, no more calendars could be created for some time.
For 15-minute period, I got the error after creating around 80-something calendars, so I guess the maximum rate of creation is close from there (1 calendar created every >15 minutes). Since this rate is not disclosed, though, it could change without notice, so take this with a grain of salt.
The original poster, GorgeousPuree, also made some testing, with results in accordance with what I got (see comment):
I also made my expirements and I've got a timeout after 25 calendars in 1 and 3 minutes intervals.
Conclusion:
In any case, the short period seems to be way too long for the worst case scenario:
60 calendars in 5 mins

MS Outlook- Multiple All Day Meeting Template?

Is there a way for me to make multiple all-day events at weird intervals. If so, is there a way to make it a template so I can do it faster?
I have a very repetitive business that has identical deadlines for every project I am given. Currently, I have to add all of these deadlines into my outlook calendar manually. I'd like a short cut where I can select a template or something that automatically programs the various all-day calendar items that I currently create manually.
For instance, I get a project today and I want to make an all-day reminder in 15 days to remind me to complete my first task. 7 days later, I need an all-day reminder for my second task. 45 days later, I need a reminder for my third task.
The other scenario is deadlines. I want to add an all-day event in my outlook calendar for the final deadline for a project. I'd like a 15 day reminder and a 5 day reminder to appear on my calendar as all-day events. I know there is a way to add a single reminder, but if it pops up while I'm away from my desk, I tend to ignore the reminder. An all-day calendar item is much harder to ignore.
Is there some way to automatically do this through a macro or function of MS Outlook of which I'm unaware. I keep my life in outlook, so I'd like for all of my deadlines to appear there as well.
TIA

Calendar for online meetings

I need an online application in which I share to a bunch of people (by their emails) a time period, with a certain granularity. Let's say one week from day X to day Y, with time slots of 1 hour and half, and asking people to fill them in order to book their slot (they should see slot availability). Is there a free web app that is capable of doing that?
I regularly use google calendar to invite/share with my colleagues for the meetings. It allows them to respond yes/no to my invitation. I also use it for scheduling my busy work slots so that it will remind me of at the right time. If you need to know more about setting up sharing appointment slots in Google calendar, you can refer at
https://support.google.com/calendar/answer/190998?hl=en
There are also other meeting scheduler apps that might suits well for your needs; please see the following.
Reference 1: https://zapier.com/blog/best-meeting-scheduler-apps/#timebridge
Reference 2: http://mashable.com/2012/09/20/shared-calendar-apps/#FOLZrYKZ.8qE

Recurring Calendar Events that don't expire

I'm looking for a library in PHP (or better yet in ruby) to handle an events calendar. I've looked a dozens of them and every one breaks down when it comes to recurring events. Many require and end date and most create every recurring event as a entry in a database or something.
Every suggestion I get is to use the Google calendar which does do exactly what I want but I'm sure they won't let me build a service on top of there service.
Sounds like you may not want to roll your own, but what about just setting up a cron job to check every x minutes if there are any events that have to be sent out?
Haven't used Runt myself, but it looks like it might do what you want.
According to their homepage:
Runt is an implementation of select temporal patterns by Martin Fowler in the super-fantastic Ruby language. Runt provides:
ability to define recurring events
using simple, set-like expressions
an interfaced-based API for creating
schedules for arbitrary
events/objects
precisioned date types using Time
Points
date Ranges
everlasting peace and/or eternal life
RiCal's recurrence rules would work for this. They do the math, the implementation would be up to you.
require 'rubygems'
require 'ri_cal'
rule = RiCal::PropertyValue::RecurrenceRule::RecurringMonthDay.new(15)
p rule.include?(Date.new(2025, 7, 15)) # true
One good thing to know about recurring events is that our calendar cycles every 28 years.
i.e. today is thursday 3 december 2010, so I know that in excaclty 28 years(10226 days) we will be thursday 3 december 2038.
With this knowledge you can build an occurencies table on a limited period of time and just "move" it to your targeted time range...

What was your most serious production bug?

What was your most serious production bug? This could be any bug you contributed to the making of or solving in a live system.
[moved my response to the answers]
Mine was on my first project out of school, on a large sales compensation system for a software company. We had a bug in the final summation routine which would attempt to subtract any owned money from the next paycheck. In certain situations, where a retroactive computation increased the amount of money owed from a previous month, the debit would be recorded, and then never get reduced from the next paycheck. What might start out as a $3.23 the first month would increase to $6.46 the following month. You can see where this is going. Although we heard of a couple of user complaints early on we dismiss them as "user error" - the sales plans were complex and it was quite easy for anyone to misunderstand what the correct amount was to be paid. But after a few months, the monies that were missing were too large to be ignored - over $2,000,000 in not paid out payroll checks. The code fix was easy, going over months of payroll computations for hundreds of employees, not so much.
I worked on an e-commerce website where the client data was supplied as a CSV dump from a legacy back-end system. We only had a sample data set to work with (despite repeated requests for the full data set) so the first time we saw the full data was on the live site the morning it launched. All the strings were quoted in the CSV file but the numbers weren't. What we didn't realise is that the legacy system inserted a comma for the thousands in larger numbers - so where we expected, say, 1099.99, we got 1,099.99. Of course, the CSV parser saw the comma and took the value as 1. Imagine the client's surprise when orders started to come in for big ticket items which were apparently selling at the bargain price of £1 each. The code was fixed quickly and fortunately their terms allowed them to decline the orders. Lesson learned: never trust a sample data set and don't go live until you've tested with a full data load.
We had an e-commerce system, and when it was moved to the production server (through our super awesome manual copy/paste/edit settings process), the senior developer - the only one with access to the server - forgot to connect the system to the payment gateway. $18,000 worth of sales later, the client notices that their bank account isn't any bigger than when we started.
Process improvements since that day:
Not one.
How we solved the problem:
Told the client to contact all the customers based on their email notifications
I lost some user registration data for about 7 users during a live update to a system I built. That doesn't sounds so bad, except that it was registrations for an $18 billion IPO. We were able to track the information down through the automated emails that got sent out, but there were a few beads of sweat shed over that little hiccup.

Resources