The easiest way on the timetable is to make 2 searches Lucerne to Alpnachstad (will give you a boat option if available on your date and train options). Then search Alpnachstad to Pilatus Kulm. That is your one-way time. Then double it for round trip or if you want to go back via Kriens on the cable car you can search for that route as well: Pilatus Kulm to Kriens then Kriens to Lucerne.

You can also find a PDF of the Lake Lucerne boat timetable here, under more on other websites.