Routing Calls to extensions or VM based on time of day and source

Hoping some one can help me out with this one we are in the process of setting up FreePBX for deployment across our school board in all 96 schools. Have run into an issue that I am trying to resolve and have not found anything that completely satisfies the requirements we are attempting to accomplish. Here is what I am attempting to replicate from the existing traditional PBX systems that are installed in some of the sites:

Time of Day
School Open 7:30AM-8:30AM, 11:30AM-12:30PM & 3:30PM-4:00PM Mon-Fri
Calls are routed to all extensions and ring (unless user has activated a feature on there specific line at the time)

School Open Classes in Session 8:30AM-11:30 & 12:30PM-3:30PM Mon - Fri
Calls to Administrative offices ring as usual
External calls (coming across any trunk IP or FXO trunks) to Class Room phones go directly to VM (calls routed via IVR need to be identified as external)
Internal calls to Class Room phones right through to sets

After Hours 4:00PM-7:30AM Mon-Fri, All Day Sat, Sunday and Holidays
Calls go to Voice Mail unless user overrides at set with feature code

This should all happen automagicly (with the exception of holidays) which I realize would need some user intervention or if we can read from a holiday table that would be even sweeter.

Thanks
Dave

You should be able to accomplish this by working with DAY/NIGHT and TIME CONDITIONS.

It could get kind of complex, because you’ll have to cascade the functions to get the desired result. I’d suggest drawing it all out on paper as in a flow chart. The thing you’ll have to remember when you start programming is that you’ll have to configure from the bottom up, rather than the top down.

BF