PG - Select a record not reserved yet
This is my (untested) query:

SELECT p.id
FROM reservables AS p
   LEFT JOIN reservations AS c
      ON p.id = c.reservable_id
         AND NOT c.reserved_between
                 &amp;&amp; tsrange('2020-02-01 14:30', '2020-02-01 15:30', '[]')
WHERE NOT EXISTS (SELECT 1 FROM reservations AS s
                  WHERE p.id = s.reservable_id
                  AND s.reserved_between
                      &amp;&amp; tsrange('2020-02-01 14:30', '2020-02-01 15:30', '[]'))
GROUP BY p.id
ORDER BY count(c.id) NULLS FIRST
LIMIT 1;


The important part is the NOT EXISTS condition, the left outer join, GROUP BY and ORDER BY are just to collect the big plus. If the performance is not good enough, go for the simpler query.