Reservation Calendar by BERYL

Plugin Banner

Reservation Calendar by BERYL

by berylstudio

Download
Description

Choose a business day and select time slots with clicks, dragging, or accessible start/end selectors. Calendar availability never exposes customer contact information.

  • 15, 30 or 60 minute slots; business hours continuing after midnight.
  • Optional minimum booking duration, recurring/date-specific unavailable periods, and shared capacity groups (for example, two treatment rooms shared by three staff).
  • Booking buffer, lead time, booking horizon, weekly closing days and exceptional holidays.
  • Staff weekly working hours and dated shifts, with an editable monthly calendar and a synchronized 30-day input table. No Pro license is required for shift planning.
  • Resources managed as facilities or staff, with free-form descriptions.
  • Customer name, phone, email, notes and up to ten optional custom text fields.
  • Customer and administrator email templates using WordPress wp_mail.
  • Three styles and accent color. The separately distributed Pro add-on includes a custom CSS editor.
  • Resource-wide database locks to serialize concurrent reservation requests.
  • Administrator booking list, date/time and resource changes, and cancellation; personal data export and anonymization through WordPress privacy tools.

The plugin makes no Stripe requests and requires no paid subscription. The optional Pro add-on is distributed separately at https://license.beryl-studio.jp/. The free plugin does not require an account or license and does not contact the license service.

Languages

The calendar automatically follows the visitor browser language (Japanese or English), without a visible language switcher.
To explicitly choose the shortcode language, use [yoyakuflow language=”en”] / [yoyakuflow language=”ja”].
Admin screens follow the WordPress user locale. A readable Japanese JSON fallback is included for browser-language selection. Directory translations can be supplied through translate.wordpress.org.
Facility names, descriptions, profile fields and booking fields use the labels entered by the administrator. There are no separate English content fields. Japanese and English customer email templates use the content entered by the administrator.
Only plugin content is switched; theme navigation, page titles and native date-picker language follow their own settings.

Week view

The All tab automatically allocates a published facility / staff member that is free for the entire selected range, using administrator resource order. Availability is rechecked under a database lock on submission. The confirmation and emails name the assigned resource. Selecting an individual tab restricts the booking to that resource. Closed days, shifts, overnight hours and buffers still apply. Each date column has a configurable 70–240px minimum width and the schedule scrolls horizontally on narrower screens. The optional monthly date picker can be hidden in Display settings.

Source code

All JavaScript and CSS files in assets/ are the original, human-readable source. They are shipped directly without compilation, bundling, or minification. No build tools or third-party JavaScript libraries are required. assets/messages.json and assets/ja.json are editable source dictionaries for browser-language support. WordPress.org translation packages take precedence for WordPress interface translations.

Staff shifts

Edit a facility/staff member and open Staff shift settings. Enable weekly hours or dated shifts, select a calendar date and set working status and start/end times. Changes synchronize with the input table and are saved with WordPress Update/Publish. Only today and the next 29 days are editable. Previously saved dates are retained. Common closing days still apply; the calendar shows planned shifts, not remaining booking capacity.

The free plugin reuses the historical yfpro_config schedule keys, preserving profile/image data and existing staff IDs. Pro is not required to read or edit shifts. If an older Pro add-on is active, upgrade it to 0.5.7 for the consolidated editor.

The editable shift UI source is assets/shift-calendar.js and assets/shift-calendar.scss. Compile SCSS with Sass into assets/shift-calendar.css. Built CSS and readable JavaScript are included; no build tools are required to use the plugin.

  1. Upload the reservation-calendar-by-beryl directory and activate the plugin.
  2. Configure the site’s timezone under WordPress Settings > General.
  3. Add published facilities/staff under Reservation Calendar by BERYL.
  4. Set hours, closing days and email templates under Reservation Calendar by BERYL > 予約設定.
  5. Add [beryl_reservation_calendar] to a page.
  1. Weekly reservation calendar with facility tabs, a monthly date picker and weekend colors.

    Weekly reservation calendar with facility tabs, a monthly date picker and weekend colors.

  2. Booking dialog with time selection, contact details and administrator-defined fields.

    Booking dialog with time selection, contact details and administrator-defined fields.

  3. Free staff shift calendar with dated working hours and synchronized input fields.

    Free staff shift calendar with dated working hours and synchronized input fields.

Does the plugin calculate service prices or select a treatment duration?

No. Customers select a start and end time. Minimum duration, breaks and shared capacity are booking constraints, not automatic service pricing, equipment inventory, or a multi-step salon checkout. Shared groups limit simultaneous reservations; they do not assign a named room.

How do I set breaks and shared capacity?

Choose Booking settings > Booking limits. Define a group ID, name and simultaneous capacity. Assign the same group to each relevant resource in its shift editor. Add weekly or date-specific unavailable periods there. Minimum duration must be a multiple of the slot interval. Existing reservations are not automatically cancelled when you edit these rules.

How do I show one resource?

Use [beryl_reservation_calendar] for all published resources, or [beryl_reservation_calendar resource=”14″] for resource ID 14. The display settings list the correct shortcode for each resource. Legacy [yoyakuflow] shortcodes remain supported.

How do I include an extra field in an email?

Use {extra} for all fields, or {field:LABEL} for one field, where LABEL is the exact administrator-entered field label. The email settings show copyable placeholders.

What does a business day mean?

For 09:00 to 02:00, bookings from 00:00 through 02:00 belong to the preceding business day and are stored with their actual next-day dates. Closures apply to the opening day. Equal opening and closing times mean a 24-hour business day.

Are emails guaranteed to arrive?

No. wp_mail success means the transport accepted the message. Configure delivery on the live site and verify both recipients. A failed notification does not cancel an accepted reservation.

Are existing WP Simple Schedule Manager records migrated?

No. The original tables and files are retained separately. Review existing data and resource availability before importing.

What data is stored?

Contact information, requested times and extra form entries are stored in the site’s database and sent to the customer and configured administrator. A salted IP hash is stored temporarily for submission throttling. Configure a privacy policy and retention process for your site. WordPress personal data erasure anonymizes contacts while retaining occupied time periods.

Who can change a reservation?

Site administrators can change reservation dates, times and resources in the free plugin. Occupied slots remain unavailable. Customers cannot change their own reservations in the free plugin; secure email-link changes and configurable customer deadlines require the separate Pro add-on.

Is Stripe billing included?

No. Billing for the optional Pro add-on is handled separately on the BERYL website. This free plugin does not call Stripe or collect payment information.

0.6.6

  • Add 15-minute slots and aligned working-hour inputs.
  • Add optional minimum booking duration and recurring/date-specific break periods. Existing installations keep their previous behavior until configured.
  • Add shared capacity groups, enforced under group-level locks for new reservations and changes, including pending bookings.
  • Add optional cancellation notification for confirmed reservations; unchecked keeps the previous no-notification behavior.
  • Keep existing bookings, schedules and Pro metadata. No database schema migration is required.

0.6.5

  • Avoid duplicate engine loading when switching from the Atelier store manager.
  • Clarify the no-preference booking choice in Japanese.

0.6.4

Move weekly staff hours and dated shift planning into the free plugin. Add an editable monthly shift calendar synchronized with the 30-day input table. Existing Pro schedule data is read automatically and preserved; shared closing days and overnight booking rules still apply. Pro remains a separately distributed add-on for customer rescheduling, profiles, image sliders, CSV reports, approval settings and custom CSS.

0.6.3

Sanitize settings before extension hooks, use unique storage identifiers with migration, and provide readable JavaScript and Japanese fallback sources. Remove bundled PO/MO files and unnecessary manual text-domain loading.

0.6.2

Escape translated output consistently, align the translation domain with the directory slug, and move the custom CSS editor and rendering to the separate Pro add-on. Preserve existing shortcodes and settings.

0.6.1

Clarify shortcode insertion and automatic browser-language guidance versus administrator-entered content.

0.6.0

Custom CSS is Pro-only. Pending reservations from the Pro approval workflow hold their slots even if Pro is deactivated. Administrators can edit or cancel pending requests.

0.5.4

Saturday blue, Sunday red and configured closing days amber in the monthly picker and weekly schedule. Closing dates are explicitly labelled. Resource-specific closures and dated shifts are respected.

0.5.3

Desktop sticky monthly calendar sidebar with the timetable beside it; single static column on mobile. Booking summary separates resource and red date/time onto two lines. Full-hour labels 14px, other labels 12px and hour separators 1px.

0.5.2

Narrower 85px default date columns, stronger week navigation without time-column titles, larger full-hour labels and separators, larger booking actions, and automatic booking dialog after click/tap or completed drag.

0.5.1

Show all time rows without an internal vertical scrollbar. Time labels on both edges with week-navigation buttons above them. Resource descriptions and profile fields are always expanded.

0.5.0

Reservation Calendar by BERYL branding. Date columns and vertical time rows for a seven-day schedule, resource tabs and automatic resource allocation. Monthly date picker visibility and minimum date-column width settings. Atomic resource locks prevent duplicate allocation under concurrent submissions.

0.4.1

Reservation Calendar by BERYL branding and [roomslot] shortcode alias. Resource photos appear above names; one photo stays static and multiple photos use slider settings from the Pro add-on.

0.4.0

Reservation Calendar by BERYL branding and shortcode, single-resource calendars using [beryl_reservation_calendar resource=”ID”], monthly date picker, modal booking form, inline resource profiles, current-time scrolling, configurable heading and description, and individual email placeholders {field:LABEL}. English-only profile and booking-field inputs removed.

0.3.0

Free administrator reservation changes, tabbed settings, automatic browser language, simpler calendar styling and vertical mobile time slots. Customer self-service changes are provided by the separately distributed Pro add-on.

0.2.0

Japanese / English visitor switch, translated API responses, English customer emails, English resource descriptions and extra-field labels. WordPress admin translations. Fix resource capability mapping so administrator settings remain accessible.

0.1.0

Initial local implementation.

Back to top