Skip to content
PayloadReserve
·
All Demos
🏨

Grand Hotel

Full-day room booking with inventory management

A hotel reservation system powered by payload-reserve. Guests select check-in and check-out dates, choose from five room types, and receive booking confirmations — with quantity-based inventory preventing overbooking.

Features

Built for hotel workflows

Full-day bookings

Uses durationType: 'full-day' for room stays. Guests select check-in and check-out dates; each night occupies a full calendar day.

Quantity-based inventory

Multiple identical rooms per type (e.g. 40 Classic, 25 Superior) with per-reservation capacity mode. Conflict detection tracks occupancy across the pool.

Housekeeping buffers

bufferTimeAfter on each room resource ensures cleaning time between guests — 4 to 6 hours depending on room type.

Email notifications

Confirmation and cancellation emails sent automatically via afterBookingConfirm and afterBookingCancel hooks.

Screenshots

Home page

Configuration

Plugin config for Grand Hotel

payload.config.ts
payloadReserve({
  slugs: {
    services: 'room-types',
    resources: 'rooms',
    schedules: 'schedules',
    reservations: 'reservations',
  },
  extraReservationFields: [
    {
      name: 'paymentReminderSent',
      type: 'checkbox',
      defaultValue: false,
      admin: { position: 'sidebar' },
    },
  ],
  adminGroup: 'Hotel',
  defaultBufferTime: 0,
  cancellationNoticePeriod: 48,
  hooks: {
    afterBookingConfirm: [notifyAfterConfirm],
    afterBookingCancel: [notifyAfterCancel],
  },
})

See the full documentation for all available options.

Ready to explore Grand Hotel?

Try the live demo or request your own private environment.

payload-reserve — Grand Hotel Demo showcase