bunkat / schedule

Automatically schedules tasks, work items, meetings, reservations, etc. Schedule takes into account working hours, holidays/days off, people's work schedule/vacation time, as well as task dependencies.
http://bunkat.github.io/schedule/
MIT License
427 stars 87 forks source link

Cannot chain windows of availability #13

Closed jmhux7 closed 7 years ago

jmhux7 commented 7 years ago

I am using Schedule.js to try to set a schedule for teachers for standardized testing weeks and I am running into a problem when I try to chain the windows of availability. I am almost getting what I need back, but the schedule results are still spilling into the windows that I have specified the teachers as unavailable. My teacher availability is as follows:

var teacherSchedules = [

{name: 'teacher3a', length: .5, availability: 'after 9:30am and before 11:10am, after 12:45 and before 2:15pm, after 2:30pm and before 3:55pm'},

{name: 'teacher3b', length: .5, availability: 'after 9:30am and before 11:10am, after 12:45 and before 2:15pm, after 2:30pm and before 3:55pm'},

{name: 'teacher3c', length: .5, availability: 'after 9:30am and before 11:10am, after 12:45 and before 2:15pm, after 2:30pm and before 3:55pm'},

{name: 'teacher3d', length: .5, availability: 'after 9:30am and before 11:10am, after 12:45 and before 2:15pm, after 2:30pm and before 3:55pm'},

{name: 'teacher4a', length: .5, availability: 'after 9:30am and before 10:20am, after 11:05am and before 12:15, after 12:45 and before 2:15, after 2:30 and before 3:55pm'}, 

{name: 'teacher4b', length: .5, availability: 'after 9:30am and before 10:20am, after 11:05am and before 12:15, after 12:45 and before 2:15, after 2:30 and before 3:55pm'},

{name: 'teacher4c', length: .5, availability: 'after 9:30am and before 10:20am, after 11:05am and before 12:15, after 12:45 and before 2:15, after 2:30 and before 3:55pm'},

{name: 'teacher5a', length: .5, availability: 'after 10:15am and before 12:30, after 1:00pm and before 2:10pm, after 2:25pm and before 3:55pm'},

{name: 'teacher5b', length: .5, availability: 'after 10:15am and before 12:30, after 1:00pm and before 2:10pm, after 2:25pm and before 3:55pm'},

{name: 'teacher5c', length: .5, availability: 'after 10:15am and before 12:30, after 1:00pm and before 2:10pm, after 2:25pm and before 3:55pm'}

];

Is there a way to appropriately chain the availability windows so that all are considered when the schedule is generated?