I already use the plugin VR Calendar Pro sync on several websites, which is a great looking availability calendar. It also comes with a booking engine, which I have used on 1 occasion. It kind of works but is a bit clunky and only offers a few of the features I was looking.
Several booking systems were evaluated but they nearly all had one major drawback. They were either too expensive or the monthly fees were simply too high. If you're only expecting to take a few direct bookings then it's difficult to justify paying a high price to gain this feature.
Finally I came across one plugin which appeared to tick all the boxes – not only the wants but the nice to haves too! HBook is a plugin with a one off purchase price of $49 and with the purchase, you get 6 months of support and updates so I guess you may want to update it every couple of years. However, this sure beats paying monthly for the same functionality.
A reservation is initiated from a widget which can be placed any page.

This then brings up the available properties and a price

You can then go on to book your selected property and be given the choice of paying by bank transfer, Paypal or credit card via Stripe. Emails are generated automatically with the booking details.
HBook Setup
Configuring any reservation system is not a trivial task as there are so many parameters, which must be defined. HBook was intuitive to use and when problems did arise, the support was top notch. The plugin did almost everything I could wish, impressing me so much I decided to write this article. The only downside I discovered was that the styling was geared towards a light coloured website and when implementing in my clients black/dark blue theme, a fair amount of CSS styling was required. For most people, this would not be an issue.
HBook have a few demos of their plugin in action and some very comprehensive documentation.
Please note that I am in no way affiliated with the author(s) of this plugin but simply believe it's a good find and more owners would use it if they knew about it.