{"slug":"x402-api-24223879872-us-east1-run-app-v1-schedule-solve-f43144","title":"Solves a scheduling/roster problem (gym class rosters, dance-school timetables, ","host":"x402-api-24223879872.us-east1.run.app","method":"POST","resource":"https://x402-api-24223879872.us-east1.run.app/v1/schedule-solve","category":"other","description":"Solves a scheduling/roster problem (gym class rosters, dance-school timetables, restaurant shift plans) with OR-Tools CP-SAT: assigns resources to slot demands honoring availability, tags, and constraints (no double-booking, max-per-day, min-rest, forbidden/required pairs, fixed assignments, max tot","price_listed":0.3,"price_asked":null,"state":"effects","state_label":"Not tested: has real-world effects","checks_7d":0,"answered_7d":0,"latency_ms_median":null,"reported_calls_30d":1,"reported_payers_30d":1,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"constraints":[{"type":"no_double_booking"}],"demands":[{"id":"yoga-mon-9am","required":1,"requiresTags":["yoga"],"slotId":"mon-9am"},{"id":"yoga-mon-10am","required":1,"requiresTags":["yoga"],"slotId":"mon-10am"}],"objective":"balance_load","resources":[{"availability":"all","id":"alice","tags":["yoga"]},{"availability":["mon-9am","mon-10am"],"id":"bob","tags":["yoga","spin"]}],"slots":[{"day":"MON","end":"10:00","id":"mon-9am","start":"09:00"},{"day":"MON","end":"11:00","id":"mon-10am","start":"10:00"}],"timeLimitSeconds":5},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"properties":{"constraints":{"description":"Optional typed constraints: no_double_booking, max_per_day, min_rest_between, forbid_pair, require_pair, fixed_assignment, max_total_hours.","items":{"type":"object"},"type":"array"},"demands":{"description":"Assignment requirements, each tied to a slot.","items":{"type":"object"},"type":"array"},"objective":{"default":"balance_load","enum":["balance_load","maximize_preferences","minimize_resources"],"type":"string"},"resources":{"description":"People/rooms/equipment that can be assigned, with tags and availability.","items":{"type":"object"},"type":"array"},"slots":{"description":"Time or label slots demands can be assigned to.","items":{"type":"object"},"type":"array"},"timeLimitSeconds":{"default":5,"maximum":15,"type":"number"}},"required":["slots","resources","demands"]},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"properties":{"assignments":{"items":{"properties":{"demandId":{"type":"string"},"resourceId":{"type":"string"},"slotId":{"type":"string"}},"type":"object"},"type":"array"},"infeasibility":{"nullable":true,"properties":{"explanation":{"type":"string"},"unsatisfiableConstraints":{"items":{"type":"string"},"type":"array"}},"type":"object"},"stats":{"properties":{"objectiveValue":{"type":["number","null"]},"resourceLoad":{"type":"object"},"wallTimeMs":{"type":"number"}},"type":"object"},"status":{"enum":["optimal","feasible","infeasible","timeout"],"type":"string"}},"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[],"description_full":"Solves a scheduling/roster problem (gym class rosters, dance-school timetables, restaurant shift plans) with OR-Tools CP-SAT: assigns resources to slot demands honoring availability, tags, and constraints (no double-booking, max-per-day, min-rest, forbidden/required pairs, fixed assignments, max total hours), optimizing the requested objective. Infeasible inputs come back with the specific conflicting demands/constraints named.","last_updated":"2026-09-23T03:24:22.715Z","schemes":["exact"]}