--- title: Bookings hooks description: Overview of all the hooks associated with bookings. --- Optimize your development workflow using our custom hooks. Our custom hooks are designed to simplify the integration of the Cal.com API into your products. With these hooks, you can effortlessly manage state, handle side effects, and optimize performance, allowing you to focus on building exceptional user experiences without the hassle of complex API interactions. Below is a list of hooks you can find that are associated with bookings: ### 1. `useBookings` The useBookings hook returns an array of all the booking data, allowing you to filter bookings by status, such as ***upcoming,*** ***recurring***, ***past,*** ***cancelled,*** or ***unconfirmed.*** It also supports pagination through the take and skip parameters. Additionally, various properties can be passed to useBookings, which can be referenced in the [following](https://github.com/calcom/cal.com/blob/307b2946a2cb6dcdb32dbee6c4f448e8a01c4285/packages/platform/types/bookings/2024-08-13/inputs/get-bookings.input.ts#L32) documentation for detailed information. Below code snippet shows how to use the useBookings hook to fetch bookings for a specific user. ```js import { useBookings } from "@calcom/atoms"; export default function Bookings() { const { isLoading: isLoadingUpcomingBookings, data: upcomingBookings } = useBookings({ take: 50, skip: 0, status: ["upcoming"], }); return ( <>
Loading...
} {!isLoadingUpcomingBookings && !upcomingBookings &&No upcoming bookings found
} {!isLoading && upcomingBookings && (Boolean(upcomingBookings?.length)) && [...upcomingBookings].map((booking) => { return (Loading...
} {!isLoadingBooking && !booking &&No booking found
} {!isLoading && !!booking && return (