How to design tables for airbnb style booking system
Use timestamp ranges for booking availability. There is good documentation in official PostgreSQL docs. 

You may find this lecture helpful:
Range Types and Temporal: Past, Present, and Future

And my blog post about generating timestamp ranges could also be helpful:
Generating ranges in PostgreSQL