Oxtilo Fast Cal

Descripció

Oxtilo Fast Cal is a secure and flexible booking management system for WordPress. Features robust availability handling, ICS calendar synchronization, email notifications, and a full REST API. Includes built-in Polish translations.

Features

  • Service Management – Define multiple services with duration and type (online/in-person)
  • Booking Intervals – Configurable slot intervals (15, 30, or 60 minutes)
  • Manual Bookings – Administrator can create bookings for any time, including outside working hours
  • Frontend Management – Clients can reschedule or cancel bookings via secure links
  • Working Hours – Configure working hours for each day of the week
  • Availability Calculation – Automatic slot availability based on working hours and existing bookings
  • External Calendar Sync – Import busy times from iCloud, Proton Calendar, or holiday calendars via ICS
  • ICS Feed Export – Private calendar feed for syncing bookings to external apps
  • Email Notifications – Automatic notifications to admin and clients with ICS attachments and customizable templates
  • Mobile Friendly – Responsive booking form with quick date selection (Today/Tomorrow)
  • REST API – Token-authenticated endpoints for external integrations (Apple Shortcuts, Zapier)
  • Built-in Polish Translations – No .mo file needed for Polish locale

Blocs

Aquesta extensió proporciona 1 bloc.

  • Oxtilofastcal Form Display the booking form.

Instal·lació

  1. Upload the oxtilo-fast-cal folder to /wp-content/plugins/
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Go to Oxtilo Fast Cal in the admin menu to configure settings

PMF

How do I add the booking form?

Add the booking form to any page using the shortcode: [oxtilofastcal_form]

Does it support translations?

Yes, it has built-in Polish translations.

Ressenyes

No hi ha ressenyes per a aquesta extensió.

Col·laboradors i desenvolupadors

«Oxtilo Fast Cal» és programari de codi obert. La següent gent ha col·laborat en aquesta extensió.

Col·laboradors

Registre de canvis

0.9.8

  • Fix: Introduced fix to WordPress SVN repository.

0.9.7

  • Fix: Renamed main plugin file to oxtilo-fast-cal.php to follow WordPress naming conventions.
  • Fix: Removed unnecessary Domain Path header (translations handled by WordPress.org).

0.9.6

  • Security: Improved nonce verification and permission checks.
  • Refactor: Replaced inline scripts and styles with wp_enqueue_script and wp_enqueue_style.
  • Fix: Corrected text domain to oxtilo-fast-cal matches plugin slug.
  • Compatibility: Updated Block API version to 3 for WordPress 7.0 readiness.
  • Compatibility: Tested up to WordPress 6.9.

0.9.5

  • Refactor: Codebase improvements for WordPress.org plugin review standards.
  • Fix: Replaced discouraged functions (unlink -> wp_delete_file) for better hosting compatibility.
  • Fix: Removed redundant load_plugin_textdomain as translations are handled by WordPress.org.
  • Security: Enhanced output escaping and sanitization in admin views.
  • I18n: Fixed text domain inconsistencies and missing translation strings.

0.9.4

  • Feature: Added setting to include/hide “Manage Booking” link in the private calendar feed events.
  • Security: Added warning when “Manage Booking” link is enabled in calendar feed to prevent unauthorized access.
  • I18n: Added Polish translations for new settings.

0.9.3

  • Security: Added server-side validation for max_days_future in REST API GET /slots endpoint.
  • Security: Hardened output escaping for paginate_links to prevent potential XSS vulnerabilities.
  • Security: Improved $_GET parameter handling and escaping in admin booking pages.
  • Compatibility: Replaced file_put_contents with WP Filesystem API for better hosting compatibility.

0.9.2

  • Fix: Prevented double booking when rescheduling by excluding the current booking from availability checks.
  • Fix: Updated frontend availability display to correctly show slots occupied by the current booking as available for rescheduling.

0.9.1

  • Security: Added Anti-Bot Protection (Honeypot + JS Time Trap + Nonce) to booking form.
  • Security: Added ability to enable/disable anti-bot protection in Security settings.
  • I18n: Added Polish translations for new anti-bot settings.

0.9.0

  • Security: Implemented comprehensive Rate Limiting system to prevent abuse (DoS, brute force, spam).
  • Configurable request limits for public endpoints (requests/minute).
  • Smart IP detection with support for Cloudflare, Sucuri, AWS CloudFront, Fastly, and proxies.
  • Rate limiting applied to booking form submissions, AJAX slot checks, and REST API.
  • Security: Fixed potential race condition (TOCTOU) in booking creation using atomic database transactions.
  • Security: Added strict date/time validation to prevent invalid booking durations.
  • Security: Hardened singleton pattern for admin class to prevent multiple instances.
  • I18n: Completed Polish translations for all new security features and API documentation.
  • Fix: Fixed issue with WordPress data sanitization (unslashing) for Apostrophes.
  • Fix: Added validation to ensure end time is always after start time.

0.8.0

  • Security: Separated API token from calendar feed token for better security
  • Calendar feed token (32 chars): Read-only access for ICS feeds shared with calendar apps
  • API token (48 chars): Write access for REST API, kept secret
  • Breaking: If using REST API, update your applications to use the new API token from Settings
  • Added: Dedicated API token display and regeneration button in REST API settings section
  • Added: Security warning explaining token separation in admin panel

0.7.0

  • Added: REST API for external integrations (e.g., Apple Shortcuts, Zapier)
  • Added: GET /wp-json/oxtilofastcal/v1/slots endpoint for available time slots
  • Added: POST /wp-json/oxtilofastcal/v1/create endpoint for booking creation
  • Added: Token-based API authentication via X-Oxtilofastcal-Token header
  • Added: Custom duration parameter for slot availability queries
  • Added: API documentation in admin settings page with real URLs and tokens
  • Improved: get_available_slots() now supports custom duration override

0.6.0

  • Added: Administrator ability to manually create bookings from the dashboard.
  • Added: Configurable booking interval setting (15, 30, or 60 minutes).
  • Added: “Client Message” field to booking form and notifications.
  • Added: Quick date selectors (Today, Tomorrow) to frontend form.
  • Added: Option to toggle 12h/24h time format on frontend.
  • Added: Email notifications for booking updates and cancellations.
  • Fixed: Issue with external ICS calendar synchronization.
  • Fixed: Gutenberg block rendering issues.
  • Fixed: ICS attachment filename in emails.
  • Improved: Frontend form styling and responsiveness.
  • Improved: Admin interface organization.

0.5.1

  • Refactored codebase into separate files with proper class structure
  • Added uninstall.php for clean plugin removal
  • Added PHP 7.4 compatibility (polyfill for str_ends_with)
  • Improved security with better input validation
  • Changed date input to native HTML5 date picker
  • Added keyboard accessibility for slot selection
  • Improved XSS protection in JavaScript
  • Added multisite support for uninstall

0.5.0

  • Initial release