I'm not a prolific programmer and as such I cannot possibly definitively say whether or not that last art is doable, but in terms of purely hardware limitations but probably is. As for the rest of your question, all you need to do is a little code magic!
Outdoor solar lights often include a little photovoltaic cell (the solar cell) with a photo-resistor or photo-transistor (the light sensor) in the middle. This setup provides two key things: 1) The light knows when it is dark and turns on only then. 2) When the light is not on, it is always due to the fact that there is enough ambient light for the battery to charge.
So, you have a micro controller and you programmed in some digging routines for one specific robot (we'll use a single one for this example since it's literally repeating the same thing for each). You set it up such that your robot will always be digging or, realistically, until the battery drains. Your battery is hooked up to a little solar cell/panel and to the controller so the electricity from the cell ONLY feeds into the battery and the battery ONLY feeds into the controller; the other servos, motors and whatnot will be powered from the controller since we're talking smallish scale toys without high current or voltage requirements.
The hard part: electronics theory.
Photo-resistors change their electrical resistance in response to ambient light levels. A photo-resistor starts out with high resistance in the dark and its resistance drops as the light level increases. Photo transistors also respond to light levels, but for your controller it's easier to deal with simple electrical resistance changes since Ohm's Law (V = I*R) since your controller should be able to measure precise voltage differences through the photo-resistor. Whatever type you buy, you'll need to use the controller to find some baselines for light levels affecting the resistance. What light level is low enough that your solar cell no longer generates any current? This can be considered your 'daybreak'. What light level is what you want to call 'night' and start your digging process? What light level will you call 'day' when you stop digging? All these will need to be experimentally determined and then used as arbitrary resistance values for your code.
If this seemed like a super dense block of nonsense, the key info is that you have to make your robots act like outdoor lights and respond to variances in light levels to determine when to be digging or recharging. If you wanna get more complicated, you might be able to figure out a way to check your matter voltage using the controller and set the robots to stop digging whenever they go below a certain voltage/get too discharged. This would be a nice feature in any case, but if you are using Lithium batteries it would be essential as they can get damaged beyond usability from being discharged too much, and if you try to charge a damaged Lithium battery it may melt or explode. This is not very good for flesh, and certainly not for your robots.
I strongly recommend Arduino for you controller boards as they use an easy language to program, run off any computer OS, and are pretty cheap and reliable.
Last thought: if you were to implement this whole day/night cycle idea in your robots, using the laser or other light source aimed at the robots would be pointless since it would trip the photo-resistors and make them all turn off again. Much simper than aiming a laser is just bathing the whole area with flood lights, though it would look far less cool. The you would't have to worry about ever turning the robots off so long as the lights can keep powering them!
If you have any questions, feel free to message me
I'll probably get back to you within a few hours.