AumCreate

AumReserva — the official guide

AumReserva turns a WordPress site into an appointment system for anything booked as one person at one time: lessons, treatments, consultations, viewings, and repairs. It requires no particular theme and no other plugin.

1. What the plugin adds

Activating AumReserva registers two content types and two taxonomies:

RegisteredWhat it holds
Services (arb_service)What can be booked: duration, price, buffer, and which staff deliver it
Service CategoriesA taxonomy on services, used to group the catalogue
Staff Members (arb_staff)Who delivers it: job title, working hours, days off, and status
LocationsA taxonomy on staff, used to group them by where they work

Bookings are not posts. They are rows in a table of their own, arb_bookings, which is why they have statuses, a CSV export, and a calendar rather than an editor screen.

The front end is one shortcode and a modal. A visitor picks a service, a member of staff, a day, and a free start time, then leaves their details. The booking is written to the table and the configured emails are sent.

2. Install

Install and activate the plugin. A Reserva menu appears with seven screens: Dashboard, Service Categories, All Services, All Staff Members, Locations, All Bookings, and Settings.

AumReserva active, and the only plugin on the site

Two things are worth doing before anything else, because the booking form reads both:

  1. Reserva → All Services — add at least one service.
  2. Reserva → All Staff Members — add at least one member of staff, then assign them to the service under Assigned staff members.

A service with nobody assigned to it cannot be booked. The modal opens on the staff step and finds nobody to offer.

3. Services

A service is an ordinary post with one added box, Service Details.

The services list
Service Details on a service
FieldWhat it controls
Duration (minutes)How long the appointment lasts
PriceShown on the service card, in the modal, and in the emails
Buffer time after service (minutes)Extra minutes blocked after the appointment, for cleaning, notes, or travel
Assigned staff membersWho can deliver this service. The visitor chooses among these on the first step
Max bookings per slotOverrides the site-wide figure for this service. Blank follows the global setting
Deposit (%)Overrides the site-wide deposit for this service. Requires WooCommerce
Staff selection stepFollow the global setting, force the step on for this service, or force it off

Duration and buffer are added together when a slot is taken. A 45-minute service with a 10-minute buffer occupies 55 minutes, so the next appointment with that person can start 55 minutes after this one and no sooner.

3.1 Services that carry several people

Three further fields turn a service from one appointment into a departure or a class:

FieldWhat it controls
Fixed start timesSpecific times, such as 09:00, 13:30. Blank offers every slot of the day
Seats per timeHow many people one start time carries. Blank means one party per booking and no head count
Most people per bookingThe largest party one booking may hold. Only read when seats are set

With seats set, each start time in the modal carries the number of places left, and a booking subtracts its party size rather than closing the time outright.

Service Categories group services for your own use. They do not restrict who may book what.

4. Staff

A staff member is also an ordinary post, with two added boxes.

The staff list
Staff Details on a staff member

Staff Details holds who they are and when they work:

FieldWhat it controls
Job TitleShown under the name on the staff step
Years of ExperienceShown with the job title
Override global working hours for this staff memberWhen ticked, the two fields below replace the site-wide hours
Work Start / Work EndThis person's working day
Days OffDates this person is unavailable, whatever the hours say
StatusWorking, On Vacation, or Inactive. Only Working staff are offered

Custom hours narrow availability rather than widening it. A staff member whose day starts at 10:00 on a site that opens at 09:00 is offered from 10:00, and the 09:00 and 09:30 slots render as unavailable rather than disappearing, so a visitor can see that the time exists and this person does not work it.

Linked Login Account connects this staff member to a WordPress user, either by linking an existing account or by creating one with Full name, Email address, and an optional welcome email. A linked staff member who logs in sees only their own bookings, in the admin calendar and through [arb_my_bookings].

5. Locations

Locations are a taxonomy on staff, not on services. The same service can be offered in several places because the people who deliver it work in several places.

The Locations screen

The staff step groups people under a heading per location. A member of staff assigned to two locations appears under both headings. The entry the visitor picks is recorded with the booking.

6. When you are open

Site-wide hours live under Reserva → Settings → General, in the Working Hours section:

SettingWhat it controls
Working daysWhich days of the week accept bookings
Working hoursThe site-wide start and end of the day
BreakOne daily period that accepts no bookings
Slot lengthThe spacing of the start times offered, in minutes
Minimum advance booking (hours)How many hours before an appointment booking closes
Maximum advance booking (days)How many days ahead the calendar opens
Max bookings per slotHow many bookings one start time accepts, unless a service overrides it

Slot length is the spacing between start times, not the length of an appointment. On a 30-minute spacing a 45-minute service is offered at 10:00, 10:30, 11:00, and so on, and each booking blocks whatever its duration and buffer require.

7. Put the booking form on a page

Create a page and add the shortcode [arb_services]. It renders every published service as a card with its price, its duration, and a Book Now button.

The services page

Three shortcodes are available:

ShortcodeWhat it renders
[arb_services]The service cards and the booking modal
[arb_booking_button]A single button for one service, for use inside other content
[arb_my_bookings]A customer's own bookings, and the confirmation shown straight after booking

Reserva → Settings → Booking Flow → Redirect page nominates where a visitor lands after booking. Pointing it at the page that holds [arb_my_bookings] gives them a confirmation of what they booked. Leaving it empty keeps them on the page they booked from.

8. What a visitor does

Step 1 — Choose staff. The people assigned to this service, grouped by location. The step can be turned off site-wide, or per service under Staff selection step.

The staff step

Step 2 — Choose date. Days outside the working days, days before the minimum advance, days beyond the maximum advance, and this person's days off all render as unavailable.

The date step

Step 3 — Choose time. Start times at the configured spacing. A time is unavailable when it falls outside this person's hours, inside the break, or when an existing booking's duration and buffer overlap it.

The time step

Step 4 — Your details. Name and email are required; phone and notes are optional. The summary above the fields repeats the date, the time, and the staff member. With Collect address enabled, an address field is added and required.

The details step

Whether a visitor needs an account is set by Allow guest bookings and Require login under Booking Flow. With guest bookings allowed, no account is created and the booking is matched to the email address.

9. Bookings in the admin

Reserva → All Bookings lists every appointment.

All Bookings

The filter bar narrows by status, staff member, service, and date range. CSV exports what the current filter shows, not the whole table.

Status is a dropdown on the row, so changing it takes one action and no screen of its own. The statuses are Pending, Confirmed, Cancelled, Completed, and No Show. Which one a new booking receives is set by Auto-confirm bookings under Booking Flow: with it off, bookings arrive as Pending and wait for you.

10. The calendar

Reserva → Dashboard carries four counters, the most recent bookings, and a calendar.

The dashboard and calendar

The calendar has a column per staff member, plus a leading Unassigned column for bookings with nobody attached. Day and Week switch the span, and the staff dropdown narrows it to one person.

A staff member with a linked login account sees only their own column.

11. Emails

Reserva → Settings → Notifications controls who is told what:

NotificationSent toWhen
New bookingCustomer, staffA booking is made
ConfirmedCustomerA booking moves to Confirmed
CancelledCustomer, staffA booking moves to Cancelled
ReminderCustomer, staffA set number of hours before the appointment

Each recipient is a separate switch, and Enable emails is the master switch above them. Admin email sets the address that receives the staff copy when a booking has no staff member attached.

Reminders are sent by WP-Cron, so they depend on the site receiving traffic or on a real cron job calling wp-cron.php. On a site with no visitors, reminders go out late or not at all.

12. Naming the three things

"Service", "Staff", and "Location" are defaults. Reserva → Settings → General → Label Customisation renames all three, singular and plural.

Settings, General tab

The plural labels are also the URL bases of the service archive, the staff pages, and the location pages. Renaming Services to Treatments moves the archive from /services/ to /treatments/. Existing links to the old base stop resolving, so rename before publishing links rather than after.

The renamed labels appear in the admin menu, the breadcrumb, the archive titles, and every step of the booking modal.

13. Settings reference

The settings screen has three tabs.

13.1 General

SettingEffect
Label CustomisationThe six labels described in section 12
Currency symbolPrefixed to every price the plugin renders
Time format12-hour or 24-hour, applied to every time the plugin renders, including the emails
Working daysWhich days accept bookings
Working hoursThe site-wide start and end of the day
BreakOne daily period that accepts no bookings
Slot lengthThe spacing of the start times offered
Max bookings per slotHow many bookings one start time accepts, unless a service overrides it
Minimum advance booking (hours)Closes booking this many hours before an appointment
Maximum advance booking (days)Opens the calendar this many days ahead
Deposit (%)The site-wide deposit, taken at booking. Requires WooCommerce

13.2 Booking Flow

SettingEffect
Staff selection stepWhether the modal asks for a staff member at all, site-wide
Allow guest bookingsWhether booking without an account is possible
Require loginWhether an account is required to reach the form
Auto-confirm bookingsWhether new bookings arrive Confirmed or Pending
Allow customers to cancelWhether the cancel control appears on a customer's own bookings
Cancellation cutoff (hours)How long before the appointment cancelling closes
Collect addressAdds a required address field, for work done at the customer's premises
Redirect pageWhere a visitor lands after booking

13.3 Notifications

SettingEffect
Enable emailsThe master switch above every notification
Admin emailThe address receiving the staff copy when no staff member is attached
Notify customer: new, confirmed, cancelledOne switch per message to the customer
Notify staff: new, cancelledOne switch per message to the staff member
Reminder hoursHow many hours before the appointment the reminder is sent
Reminder recipientsWhether the reminder goes to the customer, the staff member, or both

14. Troubleshooting

The modal opens and offers nobody. No staff member is assigned to that service. Assigned staff is a field on the service, not on the staff member. A member of staff whose status is On Vacation or Inactive is also not offered.

Every day in the calendar is unavailable. Check working days first, then the staff member's custom hours, then minimum advance. A minimum advance longer than the maximum advance leaves no bookable day at all.

Slots are missing in the middle of the day. The break accepts no bookings, and a start time whose duration plus buffer would run past the end of the working day is not offered.

Times show in the wrong format. Time format under General applies to every time the plugin renders, the emails included.

Reminders do not arrive. Reminders run on WP-Cron. Confirm that wp-cron.php is being called, either by site traffic or by a real cron job.

A guest books and sees a login wall. Fixed in 1.5.5. Before that release the redirect carried the booking id and nothing read it. On 1.5.5 and later the redirect page shows the booking that was just made.

Screenshots in this guide are regenerated from the specifications in this directory, against the plugin version recorded in `img/shot-meta.json`.