Robina

Descripción

Robina is a free, open-source booking and appointment plugin for WordPress, built for service businesses that want a capable booking system without subscription fees. It is service- and resource-centric: the bookable unit is a service with its own availability, while staff, locations and resources are optional layers you add only if you need them.

Highlights

  • Front-end booking widget (Vue 3). A clean multi-step wizard — Service, Date & time, Details, Confirm — added to any page with the [robina_booking_form] shortcode, or as a popup button with [robina_booking_button].
  • Capacity-aware availability. Slots are computed from your business hours, slot step and buffers. Assign staff to a service and each one adds a parallel slot; a staff member booked anywhere counts as busy. With no staff, a service has a single capacity per location.
  • Group classes. Give a service a capacity above 1 (say 20 or 40 — there is no upper limit) and several customers can book the same session until it fills up — ideal for classes, workshops and large group sessions.
  • Staff (optional). Tag the people who provide a service, pin them to one or more locations, and give them their own weekly hours. When a customer picks a location, only the staff who work there are offered.
  • Locations (optional). Offices or branches with their own optional weekly hours; each service declares where it is available.
  • Native WordPress admin. A branded Catalog (services, categories, resources), a Month/Week/Day Calendar with in-place booking creation, plus Bookings, Customers, Staff and Locations screens — all in plain WordPress UI.
  • Email notifications to the owner and the customer on every new booking.
  • Optional online payments — Pay on site, WooCommerce, Stripe or PayPal (see «External services» below). Leave them all off for free bookings.
  • Self-contained and private. No external CDNs and no trackers; the phone-input flags and every front-end asset ship inside the plugin. Uninstalling removes Robina’s tables and options.

Service-centric by design

Robina deliberately keeps availability on the service, not on a mandatory «employee». Staff, locations and resources are optional capacity and scope layers, so Robina also suits non-staff models such as equipment rental or table booking.

External services

By default Robina works entirely on your own site and contacts no third party. It only talks to an external service when you, the admin, enable and configure a payment gateway, and only when a customer actually chooses to pay with it. No data is sent anywhere otherwise — Robina has no «home» server and sends no telemetry or analytics.

Stripe — used only when you enable «Stripe» and enter your API keys. When a customer pays by card, Robina creates a Stripe Checkout Session and redirects the customer to Stripe’s hosted payment page, and it receives Stripe webhooks to confirm payment. Data sent to Stripe: the booking amount, currency, a short description and the customer’s email. Card details are entered on Stripe’s site, never on yours.
Terms: https://stripe.com/legal — Privacy: https://stripe.com/privacy

PayPal — used only when you enable «PayPal» and enter your client ID and secret. When a customer pays with PayPal, Robina creates a PayPal order, redirects the customer to PayPal to approve it, then captures it on return. Data sent to PayPal: the booking amount, currency and a reference id.
Terms: https://www.paypal.com/legalhub/home — Privacy: https://www.paypal.com/legalhub/privacy-full

WooCommerce (optional, local) — if you enable WooCommerce checkout and WooCommerce is installed, Robina creates a pending WooCommerce order and hands payment off to WooCommerce. Robina makes no external call itself; any outbound requests are made by WooCommerce and its own gateways under their policies.

Map link — a location’s address is turned into a plain «view on map» link to Google Maps (https://www.google.com/maps/search/…). It is only a link: nothing is transmitted and no map is loaded unless a visitor clicks it.

Source code

Robina is fully open source (GPLv2+). The front-end widget is compiled with Vite from the Vue source that ships inside the plugin under /resources. The build files (package.json, package-lock.json, vite.config.js) are bundled too, so the compiled assets in /assets/dist can be regenerated from source with:

npm install && npm run build

Bundled third-party libraries (installed via npm, both MIT-licensed):

  • Vue 3 (^3.4) — https://github.com/vuejs/core
  • intl-tel-input (^29.0) — https://github.com/jackocnr/intl-tel-input

Capturas

Instalación

  1. Install the ZIP via Plugins Add New Upload Plugin, or upload the robina folder to /wp-content/plugins/.
  2. Activate Robina through the Plugins screen.
  3. Open Robina Settings to set your business hours, timezone, currency, slot step and (optionally) payment methods.
  4. Add services under Robina Catalog. Add Locations and Staff too if you need them.
  5. Put [robina_booking_form] on any page, or use [robina_booking_button] for a popup button.

FAQ

Do I have to add staff or locations?

No. A service works on its own with a single capacity and your global business hours. Staff, locations and resources are optional.

How does availability with several staff work?

Each staff member assigned to a service adds one parallel slot. A staff member booked on any service at that time is treated as busy. When a customer picks a location, only the staff who work at that location are offered.

Is payment required?

No. With no payment method enabled, bookings are free. You can turn on Pay on site, WooCommerce, Stripe and/or PayPal at any time.

Does Robina send my data anywhere?

No telemetry, ever. The only outbound calls are to the payment gateway you choose to enable, at checkout — see «External services».

Will it match my theme?

Yes. The admin uses native WordPress UI, and the front-end widget inherits your theme font by default; colours and fonts are configurable.

Reseñas

No hay reseñas para este plugin.

Colaboradores y desarrolladores

«Robina» es un software de código abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

Traduce «Robina» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

1.1.1

  • Fix: the booking wizard now formats the chosen date using your site’s language (English by default) instead of the visitor’s browser locale.

1.1.0

  • New: per-service capacity (seats per session). Set it above 1 to turn a service into a group/class where several customers can book the same time until it is full; 1 keeps the usual one-on-one appointment behaviour.

1.0.0

  • First public release.
  • Front-end Vue booking wizard ([robina_booking_form]) and popup button ([robina_booking_button]).
  • Capacity-aware availability engine: business hours, slot step and buffers; staff as parallel capacity (a free one is auto-assigned); a single per-location capacity when no staff is configured.
  • Optional Staff with location eligibility and optional per-staff weekly hours; optional Locations with their own weekly hours; the engine resolves hours as staff, then location, then global.
  • Native admin: Dashboard, Catalog (services, categories, resources), Calendar (Month/Week/Day with create, edit and delete), Bookings, Customers, Staff, Locations and Settings.
  • Optional payments: Pay on site, WooCommerce, Stripe (hosted Checkout + signed webhook) and PayPal (Orders v2).
  • Email notifications on new bookings. Self-contained assets (no CDN). Clean uninstall.