{"ok":true,"site":{"host":"brocktimetable.com","url":"https://www.brocktimetable.com/","type":"live","desc":"Generate conflict-free Brock University timetables, compare schedule options, block unavailable times, pin classes, and export your calendar.","tools":[{"name":"searchCourses","kind":"answer","impl":"imperative","description":"Search the selected Brock timetable for course offerings. This does not change the schedule.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"},"timetableType":{"type":"string","enum":["UG","AD","PS","GR"]},"term":{"type":"string","enum":["FW","SP","SU"]},"limit":{"type":"integer","minimum":1,"maximum":30}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"createSchedule","kind":"act","impl":"imperative","description":"Replace the current schedule with the requested courses and generate the best options.","annotations":{},"inputSchema":{"type":"object","required":["courses","timetableType","term"],"properties":{"courses":{"type":"array","items":{"type":"string","description":"Course label such as COSC 1P02 D2."},"minItems":1},"timetableType":{"type":"string","enum":["UG","AD","PS","GR"]},"term":{"type":"string","enum":["FW","SP","SU"]},"preferences":{"type":"object","description":"Use hard constraints to eliminate options and soft preferences to rank them.","properties":{"hard":{"type":"object","properties":{"notBefore":{"type":"string","description":"Earliest allowed class time, HH:MM."},"notAfter":{"type":"string","description":"Latest allowed class end time, HH:MM."},"avoidDays":{"type":"array","items":{"type":"string","enum":["M","T","W","R","F","S","U"]}},"maxCampusDays":{"type":"integer","minimum":1,"maximum":7},"maxGapMinutes":{"type":"integer","minimum":0}}},"soft":{"type":"object","properties":{"avoidBefore":{"type":"string","description":"Prefer schedules without earlier classes, HH:MM."},"preferAfter":{"type":"string","description":"Prefer later starts, HH:MM."},"avoidDays":{"type":"array","items":{"type":"string","enum":["M","T","W","R","F","S","U"]}},"preferCompactDays":{"type":"boolean"},"preferFewerDays":{"type":"boolean"}}}}},"unavailableTimes":{"type":"array","items":{"type":"object","required":["days","start","end"],"properties":{"days":{"type":"array","items":{"type":"string","enum":["M","T","W","R","F","S","U"]}},"start":{"type":"string","description":"HH:MM"},"end":{"type":"string","description":"HH:MM"},"label":{"type":"string"}}}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"addCourses","kind":"act","impl":"imperative","description":"Add courses to the current schedule and regenerate its options.","annotations":{},"inputSchema":{"type":"object","required":["courses"],"properties":{"courses":{"type":"array","items":{"type":"string","description":"Course label such as COSC 1P02 D2."},"minItems":1}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"previewCourseAddition","kind":"answer","impl":"imperative","description":"Read-only what-if: test adding courses to the current schedule without changing it.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","required":["courses"],"properties":{"courses":{"type":"array","items":{"type":"string","description":"Course label such as COSC 1P02 D2."},"minItems":1},"preferences":{"type":"object","description":"Use hard constraints to eliminate options and soft preferences to rank them.","properties":{"hard":{"type":"object","properties":{"notBefore":{"type":"string","description":"Earliest allowed class time, HH:MM."},"notAfter":{"type":"string","description":"Latest allowed class end time, HH:MM."},"avoidDays":{"type":"array","items":{"type":"string","enum":["M","T","W","R","F","S","U"]}},"maxCampusDays":{"type":"integer","minimum":1,"maximum":7},"maxGapMinutes":{"type":"integer","minimum":0}}},"soft":{"type":"object","properties":{"avoidBefore":{"type":"string","description":"Prefer schedules without earlier classes, HH:MM."},"preferAfter":{"type":"string","description":"Prefer later starts, HH:MM."},"avoidDays":{"type":"array","items":{"type":"string","enum":["M","T","W","R","F","S","U"]}},"preferCompactDays":{"type":"boolean"},"preferFewerDays":{"type":"boolean"}}}}},"limit":{"type":"integer","minimum":1,"maximum":20}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"removeCourses","kind":"act","impl":"imperative","description":"Remove course labels or course codes from the current schedule and regenerate.","annotations":{},"inputSchema":{"type":"object","required":["courses"],"properties":{"courses":{"type":"array","items":{"type":"string","description":"Course label such as COSC 1P02 D2."},"minItems":1}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"setSchedulePreferences","kind":"act","impl":"imperative","description":"Set hard requirements and soft timetable preferences, then regenerate and rank options.","annotations":{},"inputSchema":{"type":"object","required":["preferences"],"properties":{"preferences":{"type":"object","description":"Use hard constraints to eliminate options and soft preferences to rank them.","properties":{"hard":{"type":"object","properties":{"notBefore":{"type":"string","description":"Earliest allowed class time, HH:MM."},"notAfter":{"type":"string","description":"Latest allowed class end time, HH:MM."},"avoidDays":{"type":"array","items":{"type":"string","enum":["M","T","W","R","F","S","U"]}},"maxCampusDays":{"type":"integer","minimum":1,"maximum":7},"maxGapMinutes":{"type":"integer","minimum":0}}},"soft":{"type":"object","properties":{"avoidBefore":{"type":"string","description":"Prefer schedules without earlier classes, HH:MM."},"preferAfter":{"type":"string","description":"Prefer later starts, HH:MM."},"avoidDays":{"type":"array","items":{"type":"string","enum":["M","T","W","R","F","S","U"]}},"preferCompactDays":{"type":"boolean"},"preferFewerDays":{"type":"boolean"}}}}},"replace":{"type":"boolean"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"setUnavailableTimes","kind":"act","impl":"imperative","description":"Replace or add recurring unavailable class times, then regenerate. Days use M, T, W, R, F, S, U.","annotations":{},"inputSchema":{"type":"object","required":["blocks"],"properties":{"blocks":{"type":"array","items":{"type":"object","required":["days","start","end"],"properties":{"days":{"type":"array","items":{"type":"string","enum":["M","T","W","R","F","S","U"]}},"start":{"type":"string","description":"HH:MM"},"end":{"type":"string","description":"HH:MM"},"label":{"type":"string"}}}},"replace":{"type":"boolean"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"pinSections","kind":"act","impl":"imperative","description":"Require specific course sections in generated schedules.","annotations":{},"inputSchema":{"type":"object","required":["sections"],"properties":{"sections":{"type":"array","items":{"type":"object","required":["courseCode","type","id"],"properties":{"courseCode":{"type":"string"},"type":{"type":"string","enum":["MAIN","LAB","TUT","SEM"]},"id":{"type":"string"}}}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"unpinSections","kind":"act","impl":"imperative","description":"Remove requirements for specific course sections and regenerate.","annotations":{},"inputSchema":{"type":"object","required":["sections"],"properties":{"sections":{"type":"array","items":{"type":"object","required":["courseCode","type","id"],"properties":{"courseCode":{"type":"string"},"type":{"type":"string","enum":["MAIN","LAB","TUT","SEM"]},"id":{"type":"string"}}}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"searchScheduleOptions","kind":"answer","impl":"imperative","description":"Search and rank generated schedule options without changing the selected option.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"preferences":{"type":"object","description":"Use hard constraints to eliminate options and soft preferences to rank them.","properties":{"hard":{"type":"object","properties":{"notBefore":{"type":"string","description":"Earliest allowed class time, HH:MM."},"notAfter":{"type":"string","description":"Latest allowed class end time, HH:MM."},"avoidDays":{"type":"array","items":{"type":"string","enum":["M","T","W","R","F","S","U"]}},"maxCampusDays":{"type":"integer","minimum":1,"maximum":7},"maxGapMinutes":{"type":"integer","minimum":0}}},"soft":{"type":"object","properties":{"avoidBefore":{"type":"string","description":"Prefer schedules without earlier classes, HH:MM."},"preferAfter":{"type":"string","description":"Prefer later starts, HH:MM."},"avoidDays":{"type":"array","items":{"type":"string","enum":["M","T","W","R","F","S","U"]}},"preferCompactDays":{"type":"boolean"},"preferFewerDays":{"type":"boolean"}}}}},"limit":{"type":"integer","minimum":1,"maximum":20},"cursor":{"type":"integer","minimum":0}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"getScheduleOptionDetails","kind":"answer","impl":"imperative","description":"Get meeting-by-meeting details for a generated schedule option.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","required":["optionId"],"properties":{"optionId":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"compareScheduleOptions","kind":"act","impl":"imperative","description":"Compare two to five generated schedule options.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","required":["optionIds"],"properties":{"optionIds":{"type":"array","minItems":2,"maxItems":5,"items":{"type":"string"}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"selectScheduleOption","kind":"act","impl":"imperative","description":"Make a generated timetable option the visible selected schedule.","annotations":{},"inputSchema":{"type":"object","required":["optionId"],"properties":{"optionId":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"getCurrentSchedule","kind":"answer","impl":"imperative","description":"Read the current schedule, preferences, and selected option.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"exportSchedule","kind":"act","impl":"imperative","description":"Download the selected schedule as an iCalendar (.ics) file or return its share link.","annotations":{"consequentialHint":true},"inputSchema":{"type":"object","properties":{"optionId":{"type":"string"},"format":{"type":"string","enum":["ics","shareLink"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]}],"category":"Health & Education","favicon":"/favicons/brocktimetable.com.png","apiSurface":"spec","toolCount":15}}