yes[1][2]. You can write Prolog schedulers with arbitrary constraints.
[1]: https://www.metalevel.at/prolog/timetabling/
[2]: https://github.com/mthom/scryer-prolog/discussions/2519
[1]: https://www.metalevel.at/prolog/timetabling/
[2]: https://github.com/mthom/scryer-prolog/discussions/2519