It depends on the cruise. For the Danube we booked the first day of the cruise at the pre-night hotel, or at the ship. I don't know of anyone who didn't get what they wanted. But I think that's unique to the Danube cruise, because none of the excursions have a limit.
For my Rhone River cruise (that ended up cancelled) we were allowed to book the excursions about 3 months in advance. I got a link to our online Adventure Handbook, and it had the date & time to start booking, as well as detailed descriptions of all of the excursions and which day(s)/time(s) they were available (but not updated as they booked). We had to call ABD to book with a Vacationista. We got everything we wanted, but we booked really early, and our ship was only like half full.
I believe the Rhine and the Seine book this same way now, not the first day of the cruise. That was just too hard & chaotic. I do believe people on the Rhine have missed out on some excursions, because they really only accommodate a very limited number of people, but you know this way before you get to the ship.
I *highly* recommend you arrive at least a day or two ahead of the cruise to get over jetlag and allow for travel difficulties.
Sayhello