Time Condition/Call Flow hybrid

Is it possible in FreePBX to have a hybrid between the Call Flow and Time Condition functions? We’ve run into a couple of use cases where something like this would be super helpful and I am not sure how to properly find out if what I am trying to do is possible (sorry if it’s been discussed before).

For example, a dental office that knows they want their calls rolled over at 5pm to VM every day but doesn’t have an exact start time each morning and would like to roll calls back over to phones manually when they come in and not on an exact scheduled start each day (so automatic rollover to VM but manually roll back to phones).

Best I could come up with was creating a time condition that has a start time of 16:59 and an end time of 17:00 and have them dial the feature code to manually set the state of the time condition to what they would like it to be in the morning. At 16:59 nothing would change since they set the state of the condition manually to route to their phones but then a minute later at 17:00 it would roll calls over to VM.

However I run into a problem in rare cases where somebody would want to change call flow infrequently to a destination (like a cell phone) but wanted to have it roll back to normal automatically in case they weren’t able to do it manually.

For example a business would like to close early or because of an emergency and forward all calls to all numbers to a cellphone but in case they are not back in time the next day they would like the phone system to automatically switch back to whatever their normal call flow is.

The problem with my workaround in this case is that this would be something that is used infrequently however if I had a Time Condition with a minute gap to make sure that calls are following the usual call flow in the morning there would be one minute each day (no matter if the condition was set prior or not) where if a call came in at that exact time it would go to the cell phone even though they would like it not to.

I guess now that I am writing this, am I able to set the start and end time on a Time Condition to the same thing and would that simply make sure that during that time every day routing would be set to one of the states no matter what state it’s currently in?

Or is there a better way to implement what I am wanting to do? Or am I asking for a use case that is not super useful and hence isn’t really supported?

Either way thanks for reading and responding.

I think we figured out a work around. I think two time conditions, one forwarding to the other, with mirroring time groups will do the trick.

image Dial the * number to toggle

So yes, I get that I can manually override a Time Condition (and it’s super important that we can do this) but the problem that we run into is that there is a specific start/end time to a time condition that might not be accurate for what we want it to do.

So like in the example of the doctors office their morning start time is not always the same (yes, totally weird I know but that’s how they work). So while they want every day at 5pm for calls to be rolled over to VM, in the mornings they want to roll the phones back to ring phones manually. So setting a start time that’s “wrong” for that time condition doesn’t really make sense so our initial thought was set the start time to be really wrong, like 16:59 and the end time 17:00 and then override every morning to ring to the phones otherwise it’s set to go to VM 23:59 hours each day.

Between 16:59 and 17:00 it would then not match and ring the phones normally still as the non matching condition and then at 17:00 it would start to route to VM again because it’s matching the condition again… Unless I am not understanding how the feature code override functions and it won’t do this automatically at 17:00 if we have the Time Condition overridden in the morning.

My assumption here is that whenever I dial the feature code to override the time condition it will automatically swing back to do whatever the time conditions tell it to once it’s 17:00 again for that day and the time group is matching the incoming call time.