Brandon showed me how to use skyfield to solve the problem for a robot on Earth, and then he went back and forth via email to show me how to solve the problem on the moon.
In the end, we used skyfield to generate lookup tables for the places and times that we cared about, and it worked out great!