Beschreibung
Aprus Appointment Calendar is a lightweight, no-frills booking plugin. You set your opening hours, drag-select the exact slots you want to be bookable, and clients book through a clean calendar embedded anywhere on your site.
Features
- Two client views — monthly calendar and weekly column layout
- Embed anywhere —
[apruapca_calendar]shortcode, classic widget or Gutenberg block (Aprus Appointment Calendar/Aprus Appointment Calendar (columns)) - Admin availability grid — drag-select a rectangle over slots to open or close them in bulk. Booked slots are protected from accidental change.
- Appointment duration + break — control slot generation with duration and buffer between visits
- Working days & hours — per-day-of-week toggle, lead time (earliest booking), calendar range (how far ahead)
- Booking popover — hover a booked slot in admin to see client details and cancel with one click; cancellation sends an e-mail notification
- Automatic locale — Polish or English based on WordPress site language, English by default
- Respects your WP settings —
start_of_week(Monday vs Sunday),time_format(24h / 12h AM-PM) - E-mail notifications — customer + admin messages via
wp_mail() - No accounts required — clients book by e-mail
Free and open source
The plugin is fully free — no premium tier, no artificially blocked features. If you find it useful, you can buy me a coffee on Ko-fi or on buycoffee.to. It helps me keep the project maintained.
Privacy
The plugin stores appointment data (name, e-mail, phone, note, date, time) in your own WordPress database. Nothing is sent to third-party servers. E-mails go through the standard wp_mail() function.
Screenshots





Blöcke
Dieses Plugin unterstützt 2 Blöcke.
- Appointment calendar (monthly)
- Appointment calendar (columns)
Installation
- Upload the plugin folder to
/wp-content/plugins/or install from Plugins Add New Upload - Activate Aprus Appointment Calendar in the Plugins list
- Open Appointments Settings, adjust hours / duration / working days
- Open Appointments Calendar and drag over slots to open them for clients
- Add the shortcode
[apruapca_calendar](or[apruapca_calendar view="columns"]) to any page/post, or drop the block/widget on your site
FAQ
-
How do I display the weekly column view?
-
Use
[apruapca_calendar view="columns"]in the shortcode, or pick Aprus Appointment Calendar (columns) in the block editor / widgets. -
Can clients see all slots by default?
-
No. In this plugin nothing is bookable until you explicitly open slots in Appointments Calendar. Drag over the slots you want to make available.
-
Can I cancel a booking?
-
Yes. In Appointments Calendar, hover a blue (booked) slot — a popover appears with client details and a „Cancel booking“ button. The client gets an e-mail notification. You can also cancel from Appointments Bookings.
-
Does it support 12-hour time format?
-
Yes. The calendar reads your Settings General Time format —
H:ishows 24-hour times (13:00),g:i ashows 12-hour (1:00 pm). -
Does the week start on Monday or Sunday?
-
Whatever you set in Settings General Week starts on.
-
Does the plugin phone home / call external services?
-
No. All data stays in your WordPress database. E-mails use
wp_mail().
Rezensionen
There are no reviews for this plugin.
Mitwirkende & Entwickler
„Aprus Appointment Calendar“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:
MitwirkendeÜbersetze „Aprus Appointment Calendar“ in deine Sprache.
Interessiert an der Entwicklung?
Durchstöbere den Code, sieh dir das SVN Repository an oder abonniere das Entwicklungsprotokoll per RSS.
Änderungsprotokoll
2.5.0
- Month view now colours each day by availability — days with open slots get a green tint and dot, fully-booked days are greyed out and not clickable, with a small legend below the calendar
- Redesigned the empty „no free slots“ state (centred icon + message) instead of a cramped line of text
- Spam / bot protection for the public booking form, all configurable under Settings Spam protection (on by default, no external services): honeypot field, time trap (rejects submits faster than a human — default 3s) and a per-IP rate limit (default 5 bookings / 60 min)
- Unique prefixes across the whole plugin, per WordPress.org review feedback: functions, classes, constants, options, hooks, nonces, AJAX actions, menu slugs, script/style handles, widget id, block namespaces and the custom table renamed from the 3-letter
sacprefix toapruapca(8 chars) - Renamed the shortcode from the generic
[appointment_calendar]to[apruapca_calendar]for the same uniqueness requirement - Wrap global variables in
uninstall.phpin a prefixed function - Refreshed the front-end booking form — a summary chip with calendar icon for the chosen slot, uppercase field labels with clearer spacing, larger inputs, and a redesigned confirmation / error message (status icon, subtle fade-in, no empty space reserved before a booking is made)
- Verified on a clean WP_DEBUG install — no notices, warnings or deprecations across activation, front-end views, all AJAX endpoints, the full booking lifecycle, settings save and uninstall
2.4.4
- Pass all Plugin Check audits: WordPress coding standards, i18n compliance, DB safety, output escaping
- Migrate SQL queries to modern
%iidentifier placeholder (requires WordPress 6.2+) - All translatable strings go through
__()with English source (Poedit / GlotPress friendly) - Add
translators:comments on placeholders in e-mail templates - Replace
date()withgmdate()for timezone-safe date math - Ordered sprintf placeholders (
%1$s, %2$s) in all multi-arg strings
2.4.3
- Switch to WordPress standard i18n with .pot / .po / .mo files (in
/languages/) - All source strings are English; Polish translation shipped as
aprus-appointment-calendar-pl_PL.mo - Localized month and weekday labels use WordPress core translations via
wp_date() - Full code comments translated to English
2.4.2
- Fix layout shift after selecting a day in the monthly view (theme CSS interference)
overflow: hiddenon the calendar card so nothing escapesmin-width: 0on grid children — prevents column widening under long content
2.4.0
- Respect WordPress
start_of_week— Monday or Sunday - Respect WordPress
time_format— 24h / 12h AM-PM in slot labels and popover - Minor CSS reset to prevent themes from breaking labels and headings
2.3.0
- Full visual redesign — modern colour palette, spacing, typography
2.2.0
- Admin availability: rubber-band rectangle selection (mouse drag or touch)
- Auto-jump on first load to the first week with clickable slots
- Stronger
user-select: noneto stop theme CSS from breaking drag
2.1.0
- Booking popover on hover (client details + cancel)
- Cancel booking endpoint with customer e-mail notification
- Full i18n — auto-detected Polish / English
2.0.0
- New availability model — nothing is bookable by default; admin opens slots explicitly
- Add appointment duration + buffer settings
1.0.0
- First release
