=== GoodMeet - Meetings & Classes for Google Meet ===
Contributors: sovlix
Tags: google meet, video conference, virtual classroom, online classes, google calendar
Requires at least: 5.3
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 2.2.1
License: GPL-2.0+
License URI: http://www.gnu.org/licenses/gpl-2.0.txt

Create Google Meet meetings from WordPress, each with a Google Calendar event and a meeting page your visitors join from.

== Description ==

**📘 [Documentation](https://sovlix.com/docs/)** | **🔥 [Get GoodMeet PRO](https://sovlix.com/goodmeet-pricing/)** | **🤝 [Join Community](https://www.facebook.com/groups/sovlixcommunity)** | **▶️ [Tutorials](https://youtube.com/playlist?list=PLxhrje-lzZsQ3vDwOCEnq6LVgg8Bc1Z_G)**

**GoodMeet is a Google Meet integration for WordPress that creates meetings with a Google Calendar event and a Meet link, and gives each one a page on your site that visitors join from.**

Connect your own Google Cloud project once, and one connection covers Google Meet, Google Calendar and, when you turn it on, Google Classroom. GoodMeet is built for educators, coaches, consultants and course creators who run classes, workshops and client calls over Google Meet.

Features marked **(Pro)** need [GoodMeet Pro](https://sovlix.com/goodmeet-pricing/). Everything else is in this free plugin.

https://youtu.be/mwGqLnHByyg?si=gS_Az0PSgMHZsaLy


== 🏆 Key Features at a Glance: ==

== ✅ Google Meet Meetings With a Calendar Event ==

- **A guided meeting wizard**
   - Create and edit meetings in clear steps: the basics, the schedule, access, and the meeting page.

- **A Meet link and a Google Calendar event for every meeting**
   - Set the name, summary, date and time with quick picks, duration and time zone. Deleting a meeting removes its calendar event too.

- **Rich descriptions and thumbnails**
   - Write the description in the WordPress editor, with headings, lists and links, and add a thumbnail.

- **All Meetings in one list**
   - Search and filter by Upcoming, Today, Past or Needs attention; join, copy the link or shortcode, open the page, and delete one or several at once. Deleting a meeting removes it and its Google Calendar event, and cannot be undone. A Live now banner shows while a meeting is running.

- **Recurring meetings (Pro)**
   - Daily, weekly, monthly or yearly, ending on a date, after a number of sessions, or never.

- **Calendar options (Pro)**
   - Reminder time, event status, who gets calendar emails, busy or free, and calendar visibility, per meeting and as defaults.


== ✅ Meeting Pages Your Visitors Join From ==

Every meeting gets its own page on your site, with a countdown before the start, a Join button while it is live, and an ended state afterwards.

- **Two free themes, Classic and Paper**
   - Choose a brand colour, button shape, sidebar side, thumbnail, and whether the site header and footer show. Set a theme for the whole site, then change it on any one meeting.

- **Times in each visitor's own time zone**
   - Optional, per meeting.

- **Preview and override**
   - Preview a theme on your latest meeting, and override any design from your own theme with `goodmeet/themes/{slug}.php`.

- **12 more themes (Pro)**
   - Cover, Studio, Cadence, Guestlist, Admit, Lobby, Lesson, Keynote, Consult, Aurora, Journal and Encore, each made for a kind of meeting such as public sessions, consultations or lessons.

- **More style options (Pro)**
   - Page background, heading and body fonts, and custom CSS for meeting pages.

- **Add to Google Calendar button (Pro).**


== ✅ Access & Hosts ==

- **Page access:** everyone, logged-in users or chosen roles, site-wide or per meeting.
- **Registration (Pro):** visitors give their name and email before the join link appears.
- **Password (Pro):** checked before the link is shown.
- **Co-hosts (Pro):** add co-hosts to a meeting, or by default to every meeting (needs a paid Google Workspace or Google One plan).


== ✅ Google Classroom ==

- Turn Classroom on under **Integrations**, see the classes you teach and their students, and post a meeting to a class stream. The post updates when you edit the meeting and disappears when you delete it.
- **Create classes and send invitations (Pro).**
- **Sell seats through WooCommerce, with class-only access (Pro).**
- **Google sign-in for students, attendance reports, several classes and topics, and a class catalog (Pro).**
- **Instructor and student dashboards (Pro).**
- **Link classes to Tutor LMS, LearnPress, Academy LMS and LifterLMS courses (Pro).**


== ✅ Shortcodes, Block & Elementor ==

- `[goodmeet-google-meeting id="123"]` shows one meeting, with options to hide the details, the timer or the calendar box (Pro), and follows the meeting's page access rule.
- `[goodmeet-google-meeting-list]` shows a searchable, sortable table of the meetings each visitor may open.
- A block for the block editor and an Elementor widget that embed an event straight from your Google Calendar. They show the Meet link to anyone who can see the page and do not apply page access.
- **Classic Editor button (Pro).**


== ✅ Sell, Teach & Run a Marketplace (Pro) ==

- **WooCommerce:** sell a meeting as a product with any payment gateway; buyers get the details in their order email and in My Account.
- **WooCommerce Bookings:** a Google Meet meeting is created for each confirmed booking.
- **LMS:** live classes on lessons and courses in **Tutor LMS**, **LearnPress**, **Academy LMS** and **LifterLMS**, open only to enrolled students.
- **Marketplaces:** **Dokan**, **WCFM Marketplace** and **MultiVendorX** vendors sell their own meetings. Turn on **Vendors use their own calendar** and each vendor connects their own Google account.
- **Instructors and front-end meetings:** instructors create and host meetings from a page on your site, without wp-admin.


== 💡 Use Cases ==

- **Online courses:** live classes for your LMS courses, open to enrolled students.
- **Schools and tutors:** post meetings to Google Classroom and keep the class stream up to date.
- **Coaches and consultants:** sell sessions through WooCommerce and send the link after payment.
- **Public sessions and workshops:** a public meeting page with a countdown, registration and a Join button.
- **Marketplaces:** let each vendor sell and host their own Google Meet sessions.

**📘 [Documentation](https://sovlix.com/docs/)** | **🔥 [Get GoodMeet PRO](https://sovlix.com/goodmeet-pricing/)** | **🤝 [Join Community](https://www.facebook.com/groups/sovlixcommunity)** | **▶️ [Tutorials](https://youtube.com/playlist?list=PLxhrje-lzZsQ3vDwOCEnq6LVgg8Bc1Z_G)**

== 📢 Hear From Our Users ==

> ⭐⭐⭐⭐⭐
[`Great plugin with a good support team`](https://wordpress.org/support/topic/great-plugin-with-a-good-support-team/)
*The plugin does everything it advertises, it is easy to set up and the team behind it has always been helpful and quick to respond to questions and feedback.
- by @panosfasoulis*

> ⭐⭐⭐⭐⭐
[`Really useful plugin!`](https://wordpress.org/support/topic/really-useful-plugin-161/)
*I've used it with LMS and multivendor plugins and it works fantastic. Everything runs smoothly and makes managing Google Meet so much easier. Highly recommended!
- by @jiasian23*

> ⭐⭐⭐⭐⭐
[`Best Google Meet Plugin`](https://wordpress.org/support/topic/best-google-meet-plugin-2/)
*Lots of features and very good support.
- by @countingstar*

== 😍 Other Plugins from Our Team ==
- **[MeetingHub](https://wordpress.org/plugins/meetinghub/) -** Appointment booking and meeting scheduling for Zoom, Google Meet, Microsoft Teams, Webex and Jitsi
- **[ZooMeet](https://wordpress.org/plugins/zoomeet/) -** Meeting and webinar integration for Zoom
- **[DriveHub](https://wordpress.org/plugins/drivehub/) -** Google Drive integration for WordPress
- **[WeMeet](https://wordpress.org/plugins/wemeet/) -** Webex integration for webinars, meetings and video conferences
- **[TogMeet](https://wordpress.org/plugins/togmeet/) -** Microsoft Teams integration for webinars, meetings and video conferences

== Installation ==

1. In your WordPress admin, go to **Plugins → Add New Plugin** and search for **GoodMeet**.
2. Click **Install Now**, then **Activate**.
3. Open **Get Started** in the plugin's menu and follow the steps to connect your Google account.
4. Create your first meeting from **All Meetings**.

Step-by-step guides with screenshots: [sovlix.com/docs](https://sovlix.com/docs/). Video walkthrough: [watch the setup video](https://youtu.be/Qh0IuYmoj1U?si=EcPdqy35WfwoCHW0).

== Frequently Asked Questions ==

= What does GoodMeet do? =

It creates Google Meet meetings from WordPress. Each meeting gets a Meet link through a Google Calendar event and its own page on your site, which visitors join from. You can embed meetings with shortcodes, a block or an Elementor widget, and post them to Google Classroom.

= Do I need a paid Google Cloud plan? =

No. You create a free Google Cloud project, turn on the APIs the setup guide lists, and upload its OAuth client file to GoodMeet. No billing account is needed. Co-hosts (Pro) need a paid Google Workspace or Google One plan, because Google only offers them there.

= Why does GoodMeet need Google Calendar? =

Google creates a Meet link as part of a Calendar event, so every GoodMeet meeting is a Calendar event with a Meet link attached. One Google connection covers both.

= Can I change how the meeting page looks? =

Yes. Pick a theme under **Settings → Meeting themes**, and change it on any one meeting. Classic and Paper are free; 12 more themes and extra style options come with GoodMeet Pro.

= Can I restrict who joins a meeting? =

Yes. The free plugin limits a meeting page to everyone, logged-in users or chosen roles, site-wide or per meeting, and the single meeting shortcode follows the same rule. The block and the Elementor widget do not apply page access, so use the meeting page or the shortcode for a restricted meeting. GoodMeet Pro adds registration before the link appears, a password, and LMS live classes limited to enrolled students.

= Do I need GoodMeet Pro for Google Classroom? =

No. The free plugin turns Classroom on, lists your classes and students, and posts meetings to a class stream. Creating classes, invitations, selling seats, attendance, dashboards and course links need GoodMeet Pro.

= Will it work with my LMS? =

Yes, with GoodMeet Pro. It works with Tutor LMS, LearnPress, Academy LMS and LifterLMS: live classes on lessons and courses, limited to enrolled students.

= Can vendors use their own Google account? =

Yes, with GoodMeet Pro and Dokan, WCFM Marketplace or MultiVendorX. Turn on **Vendors use their own calendar** under **Settings → Meetings**, and each vendor connects their own account from a Configure page in their vendor dashboard.

= Does it support platforms other than Google Meet? =

No. GoodMeet is built only for Google Meet. For Zoom, Microsoft Teams, Webex or Jitsi, see MeetingHub and our other plugins above.

= Is GoodMeet made by Google? =

No. GoodMeet is an independent plugin by Sovlix and is not affiliated with or endorsed by Google LLC. Google Meet, Google Calendar and Google Classroom are trademarks of Google LLC.

== External Services ==

This plugin connects to Google to create and manage meetings, and to Freemius for licensing. Each is listed with what is sent and when. You authenticate with your own Google account through OAuth, and your tokens are stored in your WordPress database.

**Google OAuth** - used when you upload your Google Cloud client file and approve access. It requests Google Calendar access, Google Meet meeting-space access, and your account email.

**Google Calendar API** - creates the Calendar event that carries each meeting's Meet link.
- Creating or updating a meeting sends its title, summary, start and end time, time zone, and a request for a Meet link, plus its reminders and calendar options with GoodMeet Pro. Deleting a meeting deletes the event.
- When someone registers (Pro) or buys a meeting through WooCommerce (Pro), their name and email are added to the event as an attendee.
- The block reads your Calendar events in the editor, and the Elementor widget reads the chosen event from Google each time a page with it is viewed.

**Google Classroom API** (`classroom.googleapis.com`) - used only after you turn on Google Classroom under **Integrations**.
- It reads the classes you teach and their students (names and email addresses) to show them in wp-admin. They are cached for 15 minutes and are not stored as WordPress users.
- When you post a meeting to a class, it creates an announcement with the meeting title, time, summary and a link to the meeting page, updates it when you edit the meeting, and deletes it when you delete the meeting.

**Gravatar** - meeting page themes show the host's avatar through WordPress's own Gravatar function.

These services are provided by Google LLC and Automattic Inc.: [Google Terms of Service](https://policies.google.com/terms), [Google Privacy Policy](https://policies.google.com/privacy), [Gravatar Privacy Policy](https://automattic.com/privacy/).

**Freemius** - used to license GoodMeet Pro and, if you opt in on the activation screen, to receive basic site data (site URL, WordPress, PHP and plugin versions, and your admin email) that helps us support the plugin. You can skip the opt-in; the free plugin works the same either way.
This service is provided by Freemius, Inc.: [Terms of Service](https://freemius.com/terms/), [Privacy Policy](https://freemius.com/privacy/).

== Source Code ==

The admin interface is built with React and compiled to the minified JavaScript and CSS in `assets/dist/`. The uncompiled source ships with the plugin in `assets/src/`, and `package.json` and the webpack, Tailwind and PostCSS configuration are in the plugin root. To rebuild it, run `npm install`, then `npm run build` and `npm run build:getstarted` with `NODE_ENV=production`. The PHP libraries in `vendor/` are listed in `composer.json`.

== Screenshots ==
1. All Meetings: every meeting at a glance, with live, upcoming and past filters and one-click Join
2. The meeting wizard: set the date, length and time zone in a few clear steps
3. The meeting page your attendees see, with a live countdown and a Join Google Meet button
4. Meeting themes: Classic and Paper are free, with more designs in Pro
5. Connecting your Google account by uploading one credentials file, with a setup guide and video
6. Integrations: WooCommerce, marketplaces, LMS plugins, calendars and page builders
7. Get Started: help links and a short checklist to your first meeting

== Changelog ==

= 2.2.1 - 28 Oct, 2026 =
* **Enhancement:** A larger logo on the WordPress.org listing icon, so it reads clearly in search results.

= 2.2.0 - 25 Oct, 2026 =
* **Change:** GoodMeet now needs PHP 8.1 or later, which its Google API library requires, and WordPress 5.3 or later.
* **Change:** **Vendors use their own calendar** is a GoodMeet Pro setting. Without Pro the switch is locked and its saved value is kept.
* **Fix:** The delete message no longer says a meeting moved to the trash. Deleting removes the meeting and its Google Calendar event.
* **Change:** With a GoodMeet Pro older than 2.2.0, the Pro screens stay locked and GoodMeet's own screens ask for a Pro update.
* **New:** The new GoodMeet logo, a green camera with a yellow lens, on the admin menu, the block, the Get Started page and the WordPress.org listing.
* **Enhancement:** The admin uses GoodMeet's own green throughout, with every text colour checked for contrast.
* **Enhancement:** Theme previews show the sample host as initials instead of a silhouette.
* **Enhancement:** A clearer plugin description, FAQ and external services disclosure.
* **Change:** Page access is free for each meeting as well as site-wide: everyone, logged-in users or chosen roles. Host Settings saves it without Pro; only default co-hosts there need Pro.
* **Change:** The Google Calendar event options (reminder, calendar emails, calendar visibility, event status, busy or free) are GoodMeet Pro features. Without Pro, new events use Google's defaults, and existing events keep the options they have.
* **Change:** Frontend Meetings, Integrations and default co-host settings are saved by GoodMeet Pro. Without it those screens show their Pro preview and read no settings.
* **Fix:** Pro screens unlock only when GoodMeet Pro is installed, active and licensed.
* **Fix:** Saving a meeting or the Meetings settings without Pro keeps its repeat schedule, registration, password, co-hosts and calendar options instead of overwriting them.
* **Fix:** A new meeting in a time zone other than UTC no longer reaches Google Calendar late by that zone's offset.
* **Fix:** The GoodMeet Pro band on GoodMeet's screens and on Get Started no longer lists page access, which is free.
* **Security:** Editing a meeting always checks that it is yours, even when the request leaves out the meeting ID.
* **Security:** The Google connection checks on the Connect screen verify the request's security token.
* **Change:** Creating Google Meet meetings now needs the Publish posts capability (Authors, Editors and Administrators) or the new `goodmeet_create_meetings` capability. Contributors no longer create meetings by default. To let a role create them, give it `goodmeet_create_meetings` with a role editor, or return true from the `goodmeet_can_create_meetings` filter.
* **Security:** A Contributor could create a meeting, which makes a live event on the site owner's Google account and publishes a public meeting page. WordPress does not let Contributors publish, and now GoodMeet does not either.
* **Change:** Editors manage everyone's meetings, as Administrators do. Everyone else who can create meetings manages only their own.
* **Fix:** Editing someone else's meeting no longer makes you its host. The meeting keeps its owner and host; only Editors and Administrators can name a different host.
* **Fix:** Editors and Authors can use the Google Meet block. It lists the events of your own meetings, or every event for Editors and Administrators.
* **Fix:** With GoodMeet Pro installed but not licensed, the Pro dialog, the Pro band, the Get Started page and every locked button say Activate license and open the license screen instead of offering to sell Pro. With Pro switched off they say Activate Pro, and with a Pro too old for this version, Update Pro.
* **Fix:** Upgrade links open the public pricing page when the in-dashboard pricing screen is not available, instead of a "not allowed to access this page" error.
* **Fix:** A meeting page reads a start time saved without a UTC offset, as older WooCommerce Bookings meetings have, in the meeting's time zone, so it shows the same time as Google Calendar.
* **Change:** GoodMeet is described as meetings and classes for Google Meet. Google Meet has no webinar product and GoodMeet has no webinar type, so the readme, screens and guides no longer mention webinars.

= 2.1.1 - 12 Oct, 2026 =
* **Update:** Added setup video and tutorial playlist links to the Connect tab and readme.
* **Update:** User guide and documentation links updated throughout the plugin.

= 2.1.0 - 3 Oct, 2026 =
* **New:** Meeting page themes, with a Meeting themes screen under Settings and a preview of each theme.
* **New:** Pick a theme for a single meeting, or leave it on the site default.
* **New:** Style settings for meeting pages: brand colour, button shape, sidebar side, thumbnail, and hiding the site header and footer.
* **New:** Meeting descriptions use the WordPress editor on the admin and front-end meeting forms, so headings, lists and links are kept.
* **New:** The Google Classroom screen lists courses from Tutor LMS, LearnPress and Academy LMS.
* **New:** A meeting page now shows an ended state once the meeting time has passed.
* **New:** Documentation link to the step-by-step guides at https://sovlix.com/docs/.
* **Security:** The meeting list no longer exposes meeting passwords to visitors.
* **Security:** An embedded meeting now follows the same page access rule as its meeting page.
* **Fix:** The sidebar Left and Right settings were swapped on some meeting pages.
* **Fix:** Duration presets, the recurring end date, switching Google accounts, and the error shown when the wrong file is uploaded.
* **Fix:** Settings headings ran into their descriptions on the WCFM vendor dashboard.
* **Enhancement:** The Required badge on the Google Cloud Credentials card is hidden once the account is connected.
* **Compatibility:** Meetings and settings saved before this release keep working with the new themes.

= 2.0.0 - 29 Sep, 2026 =
* **New:** Fully redesigned admin: All Meetings, Settings, Integrations and a new Get Started page.
* **New:** Step-by-step meeting wizard for creating and editing meetings.
* **New:** Frontend Meetings screen replaces Add-ons, with a guided setup for the members page.
* **New:** Dokan, WCFM and MultiVendorX each have their own switch under Integrations.
* **New:** Live now banner on All Meetings while a meeting is running.
* **Enhancement:** Every screen works on phones and tablets, and meets WCAG 2.2 AA.
* **Fix:** Google connection no longer drops after one hour.
* **Fix:** Meeting shortcode showed PHP warnings and the wrong topic.
* **Fix:** Meeting list shortcode showed nothing when there were no meetings.
* **Fix:** Vendors can connect their own Google account from every supported marketplace.

= 1.2.5 - 19 Aug, 2026 =
* **Security:** Update security.

= 1.2.4 - 18 Aug, 2026 =
* **Security:** Update security.

= 1.2.3 - 12 Aug, 2026 =
* **Update:** Updated Freemius SDK to 2.13.4.

= 1.2.2 - 12 Aug, 2026 =
* **Enhancement:** Enhanced performance and security.

= 1.2.1 - 24 Jun, 2026 =
* **Security:** Enhanced security improvements.

= 1.2.0 - 22 Jun, 2026 =
* **New:** Added vendor Google Calendar configuration pages for multivendor platforms (Dokan, MultiVendorX, and WCFM)
* **New:** Vendors can now connect and manage their own Google Calendar accounts directly from their vendor dashboard
* **New:** Added a dedicated Configure section under Google Meeting for vendor-specific Google Calendar authentication and settings
* **New:** Introduced vendor-level Google Meeting settings, allowing each vendor to manage their own calendar integration independently
* **New:** When "Allow Vendors to Connect Their Own Google Calendar" is enabled, meetings created by vendors can now be synced to their connected Google Calendar account instead of the store administrator's calendar
* **Enhancement:** Improved multivendor workflow to better support individual vendor scheduling and prevent shared-calendar conflicts
* **Fix:** Resolved an issue where vendor dashboards did not provide a Google Calendar connection interface, causing meetings to be created using the administrator's Google Calendar account. This affected Dokan, MultiVendorX, and WCFM multivendor integrations.

= 1.1.12 - 16 Jun, 2026 =
* **Enhancement:** Updated Freemius SDK to the latest version

= 1.1.11 - 16 Jun, 2026 =
* **Fix:** Google Meet meeting summary can now be cleared from WordPress; previously clearing the field had no effect on Google's side
* **Compatibility:** Tested up to WordPress 7.0

= 1.1.9 - 08 May 2026 =
* **Security:** Enhanced security improvements.

= 1.1.8 - 07 May 2026 =
* **Security:** Enhanced security improvements.

= 1.1.6 - 26 December 2025 =
* **Update:** Updated Freemius SDK

= 1.1.5 - 24 November 2025 =
* Minor bug fixes and improvements.

= 1.1.4 - 25 September 2025 =
* **Update:** Updated Freemius SDK

= 1.1.3 - 12 July 2025 =
* **Fix:** Resolved various bugs and stability issues
* **Update:** Refreshed and updated the tutorial link for better guidance

= 1.1.2 - 03 July 2025 =
* **Update:** Updated assets

= 1.1.1 - 26 June 2025 =
* **Update:** Updated assets

= 1.1.0 - 21 June 2025 =
* **New:** Introduced numerous new features.

= 1.0.0 - 04 June 2025 =
* Initial release.
