=== TogMeet – Meeting Scheduler for Microsoft Teams ===
Contributors: sovlix
Tags: microsoft teams, video conference, meetings, oauth, scheduling
Requires at least: 5.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Schedule and manage Microsoft Teams meetings directly from your WordPress dashboard.

== Description ==

TogMeet connects your WordPress site to Microsoft Teams via the Microsoft Graph API, so you can create, manage, and share Teams meetings without leaving your dashboard.

**Key Features:**

* Secure OAuth connection to Microsoft Teams via the Microsoft Graph API
* Schedule and manage meetings directly from WordPress
* Support for recurring meetings
* Meeting options: join before host, enable lobby, automatic recording
* Attendee permissions: allow/disallow camera and microphone
* Meeting registration support
* Shortcodes to display meetings, meeting lists, and registration forms
* Timezone support for accurate scheduling
* Frontend meeting management for logged-in users
* Custom meeting thumbnails, with table view and board view meeting lists
* Private, password-protected meetings
* Multi-language support via translation-ready strings

== External Services ==

This plugin connects to Microsoft's servers to provide Microsoft Teams meeting scheduling. No data is sent to Microsoft without a direct user-initiated action (such as an admin clicking "Connect to Microsoft Teams").

= Microsoft Identity Platform (OAuth 2.0) =

* **Domain:** login.microsoftonline.com
* **Purpose:** Authenticate the connecting Microsoft 365 account and issue an access/refresh token so the plugin can act on that account's Microsoft Teams calendar on their behalf.
* **Data sent:** Your site's redirect URL, the OAuth Client ID/Secret you register in your own Azure App (this plugin does not ship or proxy any shared credentials — you create your own Azure app registration), and the authorization code Microsoft issues after the admin approves access.
* **When it connects:** Only when an admin clicks "Connect to Microsoft Teams" in the plugin's settings, and again automatically to refresh an expiring token for a previously connected account.
* **Terms of Service:** https://www.microsoft.com/en-us/servicesagreement/
* **Privacy Statement:** https://privacy.microsoft.com/en-us/privacystatement

= Microsoft Graph API =

* **Domain:** graph.microsoft.com
* **Purpose:** Create, update, delete, and retrieve Microsoft Teams online meetings (subject, start/end time, join URL, attendee settings) on behalf of the connected account.
* **Data sent:** Meeting subject, agenda, start/end time, timezone, and attendee/recording preferences configured by the site admin when scheduling a meeting through TogMeet. No WordPress visitor data is sent unless an admin explicitly enters it into a meeting's settings.
* **When it connects:** Only when an admin or authorized user creates, edits, deletes, or views a Microsoft Teams meeting through the plugin.
* **Terms of Service:** https://www.microsoft.com/en-us/servicesagreement/
* **Privacy Statement:** https://privacy.microsoft.com/en-us/privacystatement
* **Microsoft Graph API Terms of Use:** https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use

**This plugin does not use any proxy or intermediary service.** All OAuth and API traffic goes directly between your WordPress site and Microsoft's servers using the Azure App credentials (Client ID/Secret) that you register yourself in the Azure portal and enter in TogMeet's settings.

== Data Policy ==

* **No telemetry:** This plugin does not collect usage statistics, analytics, or crash reports, and does not phone home to any Sovlix or third-party server.
* **No tracking pixels:** No hidden requests are made to any server on page load.
* **No data sold or shared:** Microsoft account data is never sold, rented, or transferred to any third party.
* **Token storage:** OAuth access and refresh tokens are stored in your WordPress database (as user meta for the connecting admin, and as a site option for shared/global use by the plugin's scheduling features). Tokens are only ever sent to Microsoft's own token endpoint (login.microsoftonline.com) to refresh access.
* **Admin-only connection:** Only users with the `manage_options` capability can connect or disconnect a Microsoft Teams account.
* **Minimal data scope:** The plugin only requests the Microsoft Graph scopes required for calendar/meeting management (`OnlineMeetings.ReadWrite`, `Calendars.ReadWrite`, `User.Read`, `offline_access`). No Mail, Files, or other Microsoft 365 data is requested or accessible.
* **Revoke at any time:** Disconnect via the TogMeet settings page, or remove the app's access directly from the Microsoft account's app permissions page (myaccount.microsoft.com/organizations).
* **GDPR note:** Site administrators are responsible for informing users about any Microsoft Teams integration on their site (for example, in the site's own privacy policy) if attendee names/emails are collected through meeting registration.

== Privacy Policy ==

This plugin connects to Microsoft's servers only when a site administrator actively initiates a connection or schedules/manages a meeting. No data is collected passively or on page load, and no data is sent to any Sovlix server.

**Microsoft Identity Platform and Microsoft Graph API**

When you connect a Microsoft 365 account, this plugin communicates with login.microsoftonline.com and graph.microsoft.com. Data sent includes the OAuth authorization code, access/refresh tokens, and the meeting details (subject, time, attendee settings) you configure when scheduling a Teams meeting.

* Microsoft Privacy Statement: https://privacy.microsoft.com/en-us/privacystatement
* Microsoft Services Agreement: https://www.microsoft.com/en-us/servicesagreement/
* Microsoft Graph API Terms of Use: https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use

**No telemetry or tracking.** This plugin does not send usage data, analytics, or crash reports to any server. No proxy or intermediary service is used — all requests go directly between your site and Microsoft.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`
2. Activate the plugin through the **Plugins** menu in WordPress
3. Register an app in the [Azure Portal](https://portal.azure.com/) (Azure Active Directory > App registrations) and note the Client ID and Client Secret
4. Go to **TogMeet > Settings** in the WordPress admin menu and enter your Client ID and Client Secret
5. Click **Connect to Microsoft Teams** and sign in with the Microsoft 365 account you want to schedule meetings from
6. Create a meeting from the TogMeet dashboard and embed it using the provided shortcode

== Frequently Asked Questions ==

= Do I need a Microsoft 365 account? =

Yes. Scheduling Microsoft Teams meetings requires a Microsoft 365 account with Teams enabled, plus an app registration in the Azure Portal to obtain a Client ID and Client Secret.

= Do I need my own Azure app, or is one provided? =

You must create your own Azure app registration. This plugin does not ship or proxy any shared Microsoft credentials — all OAuth traffic goes directly between your site and Microsoft using the credentials you provide.

= Does this plugin store meeting recordings? =

No. Recordings are managed and stored by Microsoft Teams/OneDrive under the connected Microsoft 365 account, not by this plugin or on your WordPress server.

= Is tracking or telemetry enabled? =

No. This plugin does not collect or transmit usage data, analytics, or telemetry of any kind.

= How do I revoke Microsoft Teams access? =

Go to TogMeet > Settings and disconnect the account, or remove the app's access directly from the Microsoft account's permissions page at myaccount.microsoft.com/organizations. Both methods revoke the plugin's access.

= What happens if I deactivate or uninstall the plugin? =

Deactivating the plugin does not delete any stored settings or tokens. Uninstalling (deleting the plugin through the WordPress admin) also does not currently remove plugin data from the database; disconnect your Microsoft account via TogMeet > Settings before removing the plugin if you want the connection revoked on Microsoft's side first.

== Source Code ==

This plugin ships compiled/minified JavaScript and CSS files built from React source.

= Compiled Files =

* Compiled: `assets/dist/main.build.js`, `assets/dist/frontend.build.js`, `assets/dist/main.build.css`
* Source: `assets/src/` (React 18, JSX)
* Build command: `npm run build` (see `webpack.config.js`)

= Tech Stack =

* React 18 + JSX
* React Router DOM
* react-toastify (notices)
* Webpack 5 (bundler)

== Changelog ==

= 1.0.0 =
* Initial release.
