Appointly
Quote-based WordPress booking: customers request, you send a custom quote, they accept. For service businesses with variable pricing.
Use with caution
Appointly works, but test it on a staging site before relying on it in 2026. It runs on 100+ sites and was last updated 4 months ago, and scores 53/100 on our health check.
- Small user base (100+ active installs)
- Very few reviews so far
How does it stack up?
Side-by-side on installs, updates, ratings & supportDaily downloads
Download spikes usually follow a new release — each site that auto-updates counts as a download.
Rankings
Where Appointly stands todayWordPress.org search rankings
Live position in the plugin search, top 100| Keyword | Position |
|---|---|
| appointment | >100 |
| booking | >100 |
| inquiry | >100 |
| quote | >100 |
| scheduling | >100 |
Version adoption
Share of active sites per release.
About Appointly
From the official readme · v2.2.0Description
For service businesses that can’t sell flat-rate. Where every appointment needs a custom quote before it becomes a booking.
Appointly is a quote-based booking system for WordPress that puts you back in the loop. Instead of automatic scheduling and fixed prices, customers submit booking inquiries, you review each one, send a personalized quote (with or without pricing), and the customer accepts or declines. Every booking is deliberate, every price is yours to set, every customer gets a personal touch.
Perfect for lawyers, consultants, tradespeople, event planners, hair & beauty salons, tattoo artists, photographers, yoga and fitness studios, tutors, and any service business that quotes before it confirms.
Why Appointly?
Most booking plugins force automatic scheduling with fixed prices. Appointly is different:
- Customer picks a date or time slot and submits an inquiry
- You review the request in the admin dashboard
- You send a personalized quote with a price and personal note
- Customer accepts or declines via a link in the email
- Booking confirmed, everyone gets notified
This quote workflow gives you the flexibility to adjust pricing per request, check availability manually, and add a personal touch before confirming any booking. Exactly what service businesses with variable pricing need.
Features:
- Booking Calendar: Beautiful, responsive appointment calendar with real-time availability. Day-mode (whole-day) and timeslot mode (customer picks a time slot of configurable length within a daily window)
- Unlimited Services: Create as many services as you need, with title, description, image, and base price
- Personal Offer Workflow: Review every inquiry and send customised offers with automatic email delivery and one-click Accept / Decline links
- SMTP Email Delivery: Reliable email delivery with presets for Gmail, Outlook, Yahoo, iCloud, IONOS, Strato, World4You, Host Europe, ALL-INKL, Hetzner, and more
- Default Email Templates: Five polished HTML email templates (inquiry, admin notification, offer, confirmation, cancellation) with light and dark modes, fully translatable
- Dark Mode: Calendar automatically adapts to the visitor’s colour scheme
- Accessibility: WCAG AA compliant with keyboard navigation
- Gutenberg Block & Shortcodes: Add the calendar via block editor or shortcode
- Setup Wizard: Guided onboarding in four steps
- GDPR Ready: Consent checkbox on the booking form, personal data exporter and eraser integration, encrypted SMTP credentials
- Multilingual: Full i18n support. German translation included (de_DE, de_DE_formal, de_AT, de_CH, de_CH_informal)
Appointly Pro:
Appointly Pro is a separate companion plugin that extends Appointly with professional booking features. It is sold on https://appointly.tscholene.com for €2.99 per month and is NOT distributed through the WordPress.org Plugin Directory. The free plugin remains fully functional without Pro. Pro is an opt-in upgrade, not a lock on existing features.
Currently shipped in Appointly Pro:
- Custom Branding: Primary colour, accent colour, and logo applied across the frontend booking form and all customer emails.
- Custom Email Template Editor: Live preview editor for all 10 customer-facing and admin notification templates with placeholder picker.
- Custom Service Fields: Build your own booking form per service with text, textarea, number, select, and checkbox fields. Validation rules, drag-and-drop reordering, conditional rendering.
- Service Addons & Upsells: Offer extras with configurable pricing, quantity, and per-service availability. Per-line pricing in offer and confirmation emails.
- Recurring Bookings: Automatic re-booking for weekly, bi-weekly, and monthly sessions. Ideal for yoga teachers, therapists, coaches, and anyone running regular appointments.
- Direct Booking (Auto-Confirm): Per-service auto-confirm for fixed-price services. Customers book instantly without admin approval. Configurable lead-time and cancellation window.
- Blocked Dates: Block individual dates globally or per service, plus date-range blocks (“block December 20 to January 3”).
- Customer Self-Cancel: Secure email-link cancellation for direct-booking services. No admin contact needed.
Planned for upcoming Pro releases (no timeline commitment):
- Booking Reminders: Automatic reminder emails sent before each appointment, plus an optional daily admin digest.
- Multi-day Bookings: Date-range bookings for multi-day events, workshops, retreats, and courses.
- Group Bookings: Multiple seats per time slot for classes and small-group events.
- Customer Self-Service Reschedule: Token-authenticated reschedule on top of the existing self-cancel flow.
- Cancellation Policies: Rule-based cutoff times and fees per service.
- Per-weekday Slot Schedules: Different availability windows per weekday (e.g. Mon/Wed/Fri morning + afternoon, Tue/Thu only afternoons) on top of the basic timeslot mode shipped in Appointly 2.1.0.
- iCal Feed: Subscribe to bookings in Google Calendar / Apple Calendar / Outlook.
- Deposit Collection via Stripe (using your own Stripe keys, no middleman).
Learn more at https://appointly.tscholene.com
Shortcodes & Block:
- Gutenberg Block: Search “Booking Calendar” in the block editor
[appointly_calendar]: Display the booking calendar[appointly_calendar service="2"]: Calendar for a specific service[appointly_form service="2"]: Standalone booking form
External services
Appointly loads Google Fonts on the WordPress admin pages so the admin UI can render with the Appointly brand typography (Instrument Serif for hero headings, Plus Jakarta Sans for body text, DM Mono for data labels). This is the only external service that the free plugin connects to.
- Service: Google Fonts (https://fonts.google.com)
- Purpose: Loading three web font families so the admin SPA renders with the Appointly brand typography
- Data sent: Your browser’s IP address and User-Agent are sent to
fonts.googleapis.comandfonts.gstatic.comwhen an admin user opens any Appointly admin page. No booking, customer, or plugin-specific data is transmitted. - When: Only when an authenticated WordPress administrator opens an Appointly admin page. Fonts are never loaded on customer-facing booking pages, iCal feed requests, or REST API calls.
- Terms of use: https://developers.google.com/fonts/faq#what_does_using_the_google_fonts_api_mean_for_the_privacy_of_my_users
- Privacy policy: https://policies.google.com/privacy
If you prefer to block Google Fonts entirely (for example in a privacy-hardened admin environment), the admin UI degrades gracefully to a system font stack (system-ui / BlinkMacSystemFont / Segoe UI / ui-serif / Menlo) and remains fully functional.
No other external services are contacted by the free plugin. Appointly does not call any payment providers (Stripe, PayPal), analytics services, license servers, or telemetry endpoints.
Appointly Pro, the separate companion plugin sold on https://appointly.tscholene.com, will, when installed, connect to appointly.tscholene.com for license validation (once per day) and plugin update checks. That connection is a feature of the Pro plugin and does not affect this free plugin. Appointly Pro ships with its own readme, privacy disclosures, and external-services documentation. The free plugin on this page does not make any requests to appointly.tscholene.com at runtime.
Build Instructions
The admin dashboard and the Gutenberg block are pre-built with @wordpress/scripts (webpack) and ship as the compiled admin/build/ and blocks/build/ artefacts. To inspect or rebuild from source, clone the repository at https://github.com/jolenelederer/appointly (uncompiled admin/src/ + blocks/src/ are not shipped in the WP.org distribution since 2.1.0. They are dev-only).
Source rebuild:
cd admin && npm install && npm run build
cd blocks && npm install && npm run build
The public frontend calendar (public/js/appointly-calendar.js) and stylesheet (public/css/appointly-calendar.css) are not compiled: they are vanilla JavaScript and CSS, human-readable as-is.
Installation
- Upload the
appointlyfolder to/wp-content/plugins/ - Activate the plugin through the ‘Plugins’ menu in WordPress
- Complete the setup wizard (Admin → Booking)
- Add
[appointly_calendar]to any page or post, or use the “Booking Calendar” Gutenberg block - Optionally configure SMTP under Booking → Settings → Email Delivery
Frequently asked questions
Does this plugin require any external dependencies?
No PHP dependencies. The free plugin is fully self-contained and works offline. The admin SPA is bundled with @wordpress/scripts and ships with its own translation files. Google Fonts (Instrument Serif, Plus Jakarta Sans, DM Mono) are loaded on admin pages only for the Appointly brand typography. This is documented in the “External services” section below. No fonts or third-party assets are loaded on customer-facing booking pages.
Can I use multiple calendars on one page?
Yes. Each [appointly_calendar] shortcode creates an independent instance.
How does the booking flow work?
Customer selects a date (and optionally a timeslot) and fills out the booking form Customer and admin receive confirmation emails Admin reviews the request in Booking → Bookings and clicks “Send Offer” with a price and personal note Customer receives an offer email with Accept / Decline buttons On acceptance, both parties receive the final confirmation email
Does it support multiple languages?
Yes. All strings are translatable via the standard WordPress .po/.mo system. German translations are included for de_DE, de_DE_formal, de_AT, de_CH, and de_CH_informal. The admin React bundle also ships per-bundle .json translation files so all admin UI strings render in the selected language. You can override the customer-facing email language independently of the site language under Booking → Settings → General → Email Language.
Can I customize the email templates?
The free plugin ships ten default HTML email templates that are fully translatable through the standard WordPress translation system. If you need to rewrite the copy beyond translation, you can either override the templates in a child theme via the standard WordPress template loader, or use the live preview template editor in Appointly Pro.
Does it support payments?
The free plugin does not collect online payments directly. The booking flow supports manual / offline payment arrangements: when you send an offer, you state the price, the customer accepts, and you handle payment out-of-band (invoice, bank transfer, cash on arrival, etc.). Online payment collection via Stripe, using your own Stripe keys, will be available through Appointly Pro in a later release.
How is Appointly different from other booking plugins?
Unlike most booking and appointment plugins that push automatic scheduling, Appointly is built around a personal offer workflow. You receive booking requests, review them personally, and send customised offers. This gives service providers full control over their calendar, pricing, and customer communication, perfect for businesses where every reservation deserves a personal touch.
How do I get Appointly Pro?
Visit https://appointly.tscholene.com to subscribe. When you subscribe, you receive a download link and a license key via email. You install Appointly Pro as a second plugin (Plugins → Add New → Upload Plugin) alongside this free plugin, paste your license key under Appointly → License, and the Pro features activate. The installation takes about two minutes. Appointly Pro is NOT distributed through the WordPress.org Plugin Directory. It is sold directly on appointly.tscholene.com via Lemon Squeezy, which handles EU VAT, subscriptions, failed payments, the customer portal, and refunds…
Changelog
2.2.0
- NEW: Admin presence & feedback touchpoints. Appointly now has a proper admin home. The “Booking” menu gained a full submenu structure (Dashboard, Requests, Services, Settings) plus a “Help & Support” page and a colour-accented “Upgrade to Pro” entry at the bottom (the upgrade entry hides automatically when Appointly Pro is active).
- NEW: Dashboard widget. A compact booking overview (open requests, awaiting response, bookings this month) now appears on the WordPress dashboard home, with a quick link to the requests list.
- NEW: Help & Support page. One place for documentation, feedback, leaving a review, and reaching support by email.
- Improved: The review prompt is now time-based. It appears 2, 7, or 30 days after installation (or as soon as you have 5+ requests, whichever comes first), only on Appointly’s own screens. New “Remind me later” snoozes to the next milestone; “Don’t show again” dismisses it for good. Existing installs are backfilled so the cadence applies to everyone.
- Added: A discreet “leave a ★★★★★ review” link in the admin footer on Appointly screens.
- Added: New filter
appointly_is_pro_activeso extensions can override Pro detection (defaults to whether Appointly Pro is installed). - Translations: 34 new admin strings added and translated across all bundled German locale variants. No DB migration, no Pro plugin breakage.
- Compatibility: Tested up to WordPress 7.0.
2.1.1
- Fixed: Service switcher on the front-end booking calendar no longer leaves a stale time-slot grid visible when the visitor changes from a timeslot service to a day-mode service. The
appointly-cal__slotscontainer is now hidden alongside theselectedSlotreset. - Positioning: Tags, short description and long description re-framed around the “quote workflow” terminology (was “offer workflow”). Clearer match for service businesses with variable pricing (lawyers, tradespeople, salons, photographers, consultants) and stronger keyword match in the WP.org plugin directory. Internal code identifiers (
STATUS_OFFERED,send_offer, actionappointly_booking_offered, email-template keysoffer,admin_offer_accepted) are unchanged. No DB migration, no Pro plugin breakage, no translation churn. - New screenshots: Replaced the old 6-screenshot set with 8 screenshots showing the full quote workflow end-to-end. Day-mode + timeslot front-end, customer email, bookings overview, booking detail with action sidebar, admin email, customer accept page, service editor.
- New banner: Updated the WP.org plugin-listing banner with “quote workflow” tagline + INQUIRIES / QUOTES / TIME SLOTS feature chips.
2.1.0
- NEW: Timeslot Scheduling. Services can now be configured for time-of-day slot booking in addition to the existing day-mode. Per service, the admin sets the daily availability window (e.g. 09:00–17:00), the slot duration (e.g. 30 minutes), and an optional buffer between slots. The customer-facing calendar shows the day grid, then reveals a row of time-slot buttons once a day is picked. Conflict detection is per-slot with a
SELECT ... FOR UPDATErow-lock around the insert so two concurrent customers cannot book the same slot. - Added:
appointly_slot_configscolumns (buffer_minutes) on theappointly_booking_servicestable. Existingbooking_mode,slot_start,slot_end,slot_durationcolumns are now actively populated by Free (previously reserved for Pro). - Added: New REST endpoint
GET /wp-json/appointly/v1/calendar/{service_id}/slots?date=YYYY-MM-DDreturning the generated slot list with per-slot availability. - Added: Service Editor in admin gets a “Time Slots” section with a booking-mode toggle, time inputs, slot duration / buffer fields, and a live slot-count preview.
- Added: Email placeholders
{time},{time_start},{time_end}resolved fromtime_slot_start/time_slot_end. The existing{date}placeholder is automatically augmented to “10.05.2026 at 09:00 – 09:30” for timeslot bookings and stays “10.05.2026” for day-mode bookings. Default email templates are NOT changed so existing translations keep working unchanged. - Added: New filter
appointly_booking_pre_save_validation(Pro extension point. Used by upcoming Pro 1.0.0 per-weekday availability editor). - Added: New filter
appointly_slot_generation_strategy. Lets Pro 1.0.0 substitute the flat daily slot grid with a weekday-aware grid. - Changed: Calendar day-status aggregation in
CalendarService::get_availability()now respects the booking mode. For timeslot services, a day is marked “booked” only when every slot is taken, and “free” as long as at least one slot is still bookable. - Changed:
APPOINTLY_DB_VERSIONbumped to 2.1.0 so existing installs pick up the newbuffer_minutescolumn viadbDelta. - Note for translators: one new translatable string was added. “%1$s at %2$s”. Used to combine date and slot time in the
{date}placeholder for timeslot bookings. All other default email template strings are unchanged.
2.0.12
- Added: Two new default email templates registered in
SettingsRepository::get_default_templates().booking_reminder(sent to clients before their appointment) andadmin_daily_digest(daily summary of confirmed bookings to the admin). Both are dormant in Free; they are activated by Appointly Pro 0.7.0 or later, which provides the cron-driven sending logic. No user-facing changes in Free 2.0.12 itself from these templates. - Added:
APPOINTLY_DB_VERSIONbumped to 2.0.12 so existing installs pick up the new template defaults via the standard upgrade path. - Changed: Dashboard Pro upgrade card now reflects the 8 features actually shipped in Appointly Pro 0.6.0 (custom branding, email template editor, custom service fields, service addons, recurring bookings, direct booking / auto-confirm, blocked dates, customer self-cancel). Previous card listed 12 features, most of which were still on the roadmap.
- Changed: Customer self-cancel description now correctly notes the feature is currently scoped to direct-booking services (was listed without that qualifier). The offer-workflow path does not ship a self-cancel link in 0.6.0.
- Changed: Pro CTA copy. “Join the waitlist →” → “Get Pro →”. The Lemon Squeezy checkout is now live.
2.0.11
- Added: New filter hook
appointly_email_templateinSettingsRepository::get_email_template(). Free plugin behavior unchanged (no callback registered = defaults returned). Appointly Pro 0.6.0 registers a license-gated callback to inject admin-customized subject and body lines.
2.0.10
- Fixed: Installer now adopts legacy
wpbk_response_page_idwhen upgrading from pre-2.0.7 installs where the prefix migration may have been skipped. Prevents a duplicate “Booking Response” page in the frontend menu. - Fixed: Auto-created Booking Response page is also excluded from
wp_list_pages()exclusion arrays (belt-and-suspenders on top of the existingget_pagesfilter) for broader block-theme compatibility.
Screenshots
For developers
Is this your plugin? Show off the numbers.
Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.
Best Appointly alternatives
All appointment plugins →FAQ
Appointly: quick answers
Straight answers, pulled from live WordPress.org data.
Live data from WordPress.org · checked Oct 2, 2026
Is Appointly free?
Yes. Appointly is free to download and use from the official WordPress.org plugin directory.
Is Appointly safe to use in 2026?
Appointly works, but test it on a staging site before relying on it in 2026. It runs on 100+ sites and was last updated 4 months ago, and scores 53/100 on our health check.
How many websites use Appointly?
Appointly is active on 100+ WordPress websites and has been downloaded 3,144 times since it launched in April 2026. It was downloaded 147 times in the last 30 days.
Does Appointly work with WordPress 7.1?
Appointly is officially tested up to WordPress 7.0.6, while the latest release is 7.1.2. It may still work, but try it on a staging site first.
What PHP version does Appointly need?
Appointly requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.
When was Appointly last updated?
The latest version, 2.2.0, was released on June 10, 2026 (4 months ago).
Who makes Appointly?
Appointly is developed and maintained by tscholene.
What are the best alternatives to Appointly?
The most popular alternatives to Appointly are Easy Appointments (10K+ installs), EMC (10K+ installs) and Appointment Hour Booking (10K+ installs).
Powered by PageForge
Want thousands of pages that rank like these? Build them in an afternoon.
This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.
- CSV, Google Sheets & API data sources
- AI content, schema & internal links per page
- Works with Elementor, Gutenberg, Yoast & Rank Math
- Free on WordPress.org — no credit card