=== meetergo ===
Contributors: meetergo
Tags: booking, appointment, scheduling, calendar, meeting
Requires at least: 6.3
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 2.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Add meetergo booking calendars, popup buttons and a floating booking button to WordPress.

== Description ==

Let visitors book an appointment from your WordPress website with meetergo.
Add a booking calendar to a page, open it in a popup, or show a floating booking button.

* Native meetergo Booking block in the WordPress block editor.
* [meetergo] shortcode for the classic editor and page builders.
* Inline calendars and popup booking buttons.
* Optional floating button with your text, colors and corner position.
* A different booking link for each block or shortcode, including custom domains.
* Click-to-load inline calendars by default. Popup calendars load only after a click.
* Keyboard-accessible popup with Escape to close and focus restored to the booking button.
* English and German interface.
* Existing version 1.0.3 company links and button settings are preserved.

You need a meetergo account and a public booking link. No API key or account password is stored in this plugin. A free meetergo plan is available; selected meetergo features require a paid plan. See https://meetergo.com/ for current plans.

= External services and privacy =

This plugin connects visitors to the meetergo scheduling service when they load a calendar, open a popup, or follow a booking link. If you configure a custom booking domain, that domain receives the request instead. The remote booking page receives standard browser request information, including the visitor's IP address and browser information, and any data the visitor enters to make a booking.

With the default click-to-load setting, inline calendars do not connect until the visitor clicks "Load booking calendar". Turning off that setting allows inline calendars to load automatically. Popup calendars always wait for a click. The plugin adds no analytics, remote JavaScript loaders, background API calls, or automatic WordPress-user prefilling. The embedded booking service's own behavior and your workspace settings still apply.

Service: https://meetergo.com/
Terms: https://meetergo.com/agb
Privacy policy: https://meetergo.com/en/data-privacy

The click-to-load option controls when a calendar loads. It is not a replacement for your site's privacy notice or consent management requirements.

== Installation ==

1. Install and activate meetergo from the WordPress plugin directory, or upload the meetergo ZIP under Plugins > Add New > Upload Plugin.
2. Copy your public booking link from your meeting type in meetergo.
3. Open Settings > meetergo and save it as the default booking link.
4. Add the meetergo Booking block to a page, or add the shortcode [meetergo].
5. Optionally enable the floating booking button in Settings > meetergo.

= Shortcode examples =

Default inline calendar:
[meetergo]

A specific meeting type:
[meetergo url="https://cal.meetergo.com/your-name/meeting" height="800"]

Popup button:
[meetergo url="https://cal.meetergo.com/your-name/meeting" type="popup" text="Book an appointment"]

The booking link must use HTTPS. Initial height is limited to 300 to 1600 pixels. The inline frame adjusts its height when the booking page reports a supported resize event.

== Frequently Asked Questions ==

= What happens when I update from 1.0.3? =

Your existing button remains enabled with its saved text, colors, corner position and original company-link destination. It continues opening a new tab. You can replace that legacy link with a current booking link and switch to a popup in Settings > meetergo. An unconfigured site no longer displays a red setup warning to visitors.

= Can I embed different meeting types? =

Yes. Set a different booking link on each block or use the url attribute in a shortcode. An empty link uses your saved default.

= Does it work with page builders? =

Use the builder's shortcode element. The plugin does not require a particular theme or page builder. Custom booking domains must allow their pages to be displayed in an iframe.

= Why does the calendar wait for a click? =

Inline calendars wait for a visitor to load them by default. You can change this under Settings > meetergo. The booking page also remains available through a normal link if JavaScript is unavailable or embedding is blocked.

= Does this replace my meetergo account? =

No. Manage availability, meeting types, calendar connections and bookings in meetergo. This plugin adds the booking experience to your website.

= What happens when I deactivate or delete the plugin? =

Deactivation keeps your settings. Deletion also keeps them unless you enabled "Delete plugin settings when this plugin is deleted". For multisite installations this preference applies separately to each site. Your bookings in meetergo are never deleted by this plugin.

== Screenshots ==

1. Booking link, display and privacy settings in the native WordPress admin.
2. Add and configure the meetergo Booking block in the German block editor.
3. A real meetergo booking calendar in a desktop popup.
4. German booking popup on a mobile screen.

== Changelog ==

= 2.0.0 =
* Add a native booking block and an inline/popup shortcode.
* Add full booking links and support for custom booking domains.
* Add click-to-load calendars, accessible popups and a configurable floating button.
* Preserve existing 1.0.3 company links and button settings.
* Validate settings and safely render URLs, colors and labels.
* Remove visitor-facing setup warnings and missing-option PHP warnings.
* Bundle local scripts and styles; load the booking page only as configured.
* Add German translations and optional settings cleanup on deletion.

= 1.0.3 =
* Previous release with a floating link to a meetergo company page.

== Upgrade Notice ==

= 2.0.0 =
Requires WordPress 6.3 and PHP 7.4 or newer. Existing button settings and destinations are preserved. Configure a current booking link to use the new inline and popup embeds.
