{"id":384038,"date":"2026-10-12T05:19:17","date_gmt":"2026-10-12T05:19:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/reservation-calendar-by-beryl\/"},"modified":"2026-10-12T05:19:00","modified_gmt":"2026-10-12T05:19:00","slug":"reservation-calendar-by-beryl","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/reservation-calendar-by-beryl\/","author":23580982,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.6.3","stable_tag":"0.6.3","tested":"7.1.3","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"Reservation Calendar by BERYL","header_author":"BERYL susukino","header_description":"Time-slot reservations for facilities and staff, with overnight opening hours, closing days, email notifications and Japanese \/ English calendars.","assets_banners_color":"f3f5f7","last_updated":"2026-10-12 05:19:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.6.3":{"tag":"0.6.3","author":"berylstudio","date":"2026-10-12 05:19:00","revision":3740523}},"upgrade_notice":{"0.6.3":"<p>Directory review improvements. Existing bookings and facility IDs are preserved while internal storage names are migrated. If Pro 0.5.3 or earlier is active, migration is deferred; update Pro to 0.5.4 or later first. Back up your database before updating.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3740523,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3740523,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3740523,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3740523,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.6.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3740523,"resolution":"1","location":"assets","locale":"","width":1280,"height":720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3740523,"resolution":"2","location":"assets","locale":"","width":1280,"height":720}},"screenshots":{"1":"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."}},"plugin_section":[],"plugin_tags":[269,416,722,4062,10449],"plugin_category":[40],"plugin_contributors":[285281],"plugin_business_model":[],"class_list":["post-384038","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-calendar","plugin_tags-reservation","plugin_tags-schedule","plugin_tags-studio","plugin_category-calendar-and-events","plugin_contributors-berylstudio","plugin_committers-berylstudio"],"banners":{"banner":"https:\/\/ps.w.org\/reservation-calendar-by-beryl\/assets\/banner-772x250.png?rev=3740523","banner_2x":"https:\/\/ps.w.org\/reservation-calendar-by-beryl\/assets\/banner-1544x500.png?rev=3740523","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/reservation-calendar-by-beryl\/assets\/icon-128x128.png?rev=3740523","icon_2x":"https:\/\/ps.w.org\/reservation-calendar-by-beryl\/assets\/icon-256x256.png?rev=3740523","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/reservation-calendar-by-beryl\/assets\/screenshot-1.png?rev=3740523","caption":"Weekly reservation calendar with facility tabs, a monthly date picker and weekend colors."},{"src":"https:\/\/ps.w.org\/reservation-calendar-by-beryl\/assets\/screenshot-2.png?rev=3740523","caption":"Booking dialog with time selection, contact details and administrator-defined fields."}],"raw_content":"<!--section=description-->\n<p>Choose a business day and select time slots with clicks, dragging, or accessible start\/end selectors. Calendar availability never exposes customer contact information.<\/p>\n\n<ul>\n<li>30 or 60 minute slots; business hours continuing after midnight.<\/li>\n<li>Booking buffer, lead time, booking horizon, weekly closing days and exceptional holidays.<\/li>\n<li>Resources managed as facilities or staff, with free-form descriptions.<\/li>\n<li>Customer name, phone, email, notes and up to ten optional custom text fields.<\/li>\n<li>Customer and administrator email templates using WordPress wp_mail.<\/li>\n<li>Three styles and accent color. The separately distributed Pro add-on includes a custom CSS editor.<\/li>\n<li>Resource-wide database locks to serialize concurrent reservation requests.<\/li>\n<li>Administrator booking list, date\/time and resource changes, and cancellation; personal data export and anonymization through WordPress privacy tools.<\/li>\n<\/ul>\n\n<p>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.<\/p>\n\n<h3>Languages<\/h3>\n\n<p>The calendar automatically follows the visitor browser language (Japanese or English), without a visible language switcher.\nTo explicitly choose the shortcode language, use [yoyakuflow language=\"en\"] \/ [yoyakuflow language=\"ja\"].\nAdmin 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.\nFacility 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.\nOnly plugin content is switched; theme navigation, page titles and native date-picker language follow their own settings.<\/p>\n\n<h3>Week view<\/h3>\n\n<p>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\u2013240px minimum width and the schedule scrolls horizontally on narrower screens. The optional monthly date picker can be hidden in Display settings.<\/p>\n\n<h3>Source code<\/h3>\n\n<p>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.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the reservation-calendar-by-beryl directory and activate the plugin.<\/li>\n<li>Configure the site's timezone under WordPress Settings &gt; General.<\/li>\n<li>Add published facilities\/staff under Reservation Calendar by BERYL.<\/li>\n<li>Set hours, closing days and email templates under Reservation Calendar by BERYL &gt; \u4e88\u7d04\u8a2d\u5b9a.<\/li>\n<li>Add [beryl_reservation_calendar] to a page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20show%20one%20resource%3F\"><h3>How do I show one resource?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"how%20do%20i%20include%20an%20extra%20field%20in%20an%20email%3F\"><h3>How do I include an extra field in an email?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"what%20does%20a%20business%20day%20mean%3F\"><h3>What does a business day mean?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"are%20emails%20guaranteed%20to%20arrive%3F\"><h3>Are emails guaranteed to arrive?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"are%20existing%20wp%20simple%20schedule%20manager%20records%20migrated%3F\"><h3>Are existing WP Simple Schedule Manager records migrated?<\/h3><\/dt>\n<dd><p>No. The original tables and files are retained separately. Review existing data and resource availability before importing.<\/p><\/dd>\n<dt id=\"what%20data%20is%20stored%3F\"><h3>What data is stored?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"who%20can%20change%20a%20reservation%3F\"><h3>Who can change a reservation?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"is%20stripe%20billing%20included%3F\"><h3>Is Stripe billing included?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.6.3<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.6.2<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.6.1<\/h4>\n\n<p>Clarify shortcode insertion and automatic browser-language guidance versus administrator-entered content.<\/p>\n\n<h4>0.6.0<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.5.4<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.5.3<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.5.2<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.5.1<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.5.0<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.4.1<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.4.0<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.3.0<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.2.0<\/h4>\n\n<p>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.<\/p>\n\n<h4>0.1.0<\/h4>\n\n<p>Initial local implementation.<\/p>","raw_excerpt":"Simple time-slot reservations for studios, rooms and staff, with overnight business hours.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/384038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=384038"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/berylstudio"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=384038"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=384038"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=384038"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=384038"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=384038"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=384038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}