=== Amelia ICS Blocker Plugin === Contributors: mantospm Tags: amelia, booking, calendar, outlook, ics, privacy, scheduling Requires at least: 5.0 Tested up to: 6.4 Stable tag: 1.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html == Description == The Amelia ICS Blocker Plugin enables true integration between the **Amelia Booking Plugin** and **Outlook Desktop**. While Amelia claims Outlook compatibility, it only supports Microsoft 365 cloud-based calendars. This plugin fills the gap for users who maintain local calendars (e.g., Outlook Desktop, Thunderbird, etc.) by parsing uploaded ICS files and blocking Amelia availability accordingly. The plugin imports *busy* events from ICS files and creates placeholder appointments using a fictitious customer, service, and location—effectively blocking availability in Amelia Booking. == Features == - Upload ICS files manually or via API. - Blocks Amelia appointment slots for ICS events (configurable options): - **Busy only**: Only process events marked "BUSY". - **Clear future blocks**: Optionally delete all future blocker appointments before processing. - **Max days out**: Limit how far into the future events are processed. - Per-provider settings are saved and reused. - Duplicate and overlapping events are automatically deduplicated. - Includes command-line or Outlook VBA automation example. - Robust test coverage via automated regression tests. - No personal calendar data is exposed in Amelia. == Usage == 1. Export your busy appointments from Outlook Desktop as an ICS file (a VBA macro is provided). 2. Upload and process the ICS file using the plugin interface or API. 3. The plugin creates "blocker" appointments using dummy Amelia records to prevent booking conflicts. 4. If an Outlook event is canceled, remove the blocker manually in Amelia (this plugin does not sync deletions). == Installation == 1. Upload the plugin folder to `/wp-content/plugins/`. 2. Activate the plugin in the WordPress Admin dashboard. 3. Confirm that Amelia Booking is installed and active. 4. Open the Amelia ICS Blocker Plugin page in the admin interface to begin configuration. == Screenshots == 1. Provider and ICS file selection UI. 2. Options panel for processing, validation, and clearing blocks. 3. Status panel with file validation results and process summary. == Composer & Dependencies == This plugin uses **Sabre VObject** for ICS file parsing. To install dependencies: ```bash composer install ``` The required modules will be placed in the `/vendor` directory. == REST API Endpoints == Base path: `/wp-json/aicsb/v1/` | Endpoint | Method | Description | |-----------------------|--------|--------------------------------------------------------------------------| | `upload` | POST | Uploads an ICS file. | | `process` | POST | Processes a previously uploaded ICS file for a provider. | | `upload-and-process` | POST | Uploads and processes the ICS file in a single step. | | `validate` | POST | Validates structure and content of an ICS file. | | `save-settings` | POST | Saves the selected ICS file and options for a provider. | | `revert-settings` | POST | Reverts to the last saved settings for a provider. | | `fetch-settings` | POST | Retrieves saved settings for a provider. | | `clear-future-blocks` | POST | Removes future blocker appointments for a provider. | | `ensure-defaults` | POST | Ensures required Amelia entities (customer, service, location) are present.| == Outlook VBA Example == The documentation folder includes a sample VBA macro to: - Export all *busy* appointments for the next **90 days**. - Automatically upload and process the ICS file using `curl`. See: `/documentation/Amelia ICS Blocker PluginExample Outlook VBA Macros.docx` == Frequently Asked Questions == **Q: Is this for Microsoft 365 users?** A: Not primarily. It's intended for Outlook Desktop or any local calendar app that can export ICS files. **Q: Does it support recurring events?** A: Basic recurrence is handled. Complex recurrence rules (RRULE) are not currently supported. **Q: Will it automatically remove appointments when deleted in Outlook?** A: No. Users must manually delete the matching block in Amelia Booking. == Changelog == = 1.0 = - Initial release. - ICS upload, validation, and processing with test coverage. - Supports provider-specific settings and automated use cases. == Upgrade Notice == Version 1.0 - Initial stable release. No upgrade steps needed. == License == This plugin is free software, released under the GPL v2 or later.