There are a number of booking apps available in Shopify, including ours: https://apps.shopify.com/bookthatapp
-Sign up for DIY classes online
-Select a design from a list & With the option of a message to be sent with selection
-Pay (deposit) for the class
-See available classes online through a calendar
We have a number of stores using BookThatApp to take class bookings online. The App supports the requirements you mention. I'll also add that to capture the custom message you can take advantage of the 'booking fields' feature.
Please feel to touch base with our support team if you'd like to see some example stores or need any further information.