KW Knowledge base

Meetings — Video & Voice

Scheduling, hosting, and reviewing video meetings inside the portal: Jitsi, internal rooms, external links, and recordings.

Mitch Wigham
Updated 24 June 2026 · 6 views

What Are Meetings?

The Meetings module is the portal's built-in video / voice meeting scheduler. It does not require a third-party Zoom or Teams licence — meetings run inside the browser (Jitsi) or in an external room you paste a link to.

Where to find it: Sidebar → Meetings or /meetings. Requires the meetings feature.

Layout

Meetings are grouped into Live now, Upcoming, and Past. A My meetings / All org meetings toggle switches scope, and a status filter narrows by Scheduled / In progress / Ended / Cancelled.

Scheduling a Meeting

  1. Go to Meetings → + New meeting (/meetings/new).
  2. Fill in:
    • Title (required).
    • Description — optional agenda / context.
    • When — date and start time.
    • Duration — in minutes (default 30).
    • Provider — choose one:
      • Internal (browser) — a built-in room the portal hosts.
      • Jitsi — the platform generates a Jitsi room URL.
      • External (link) — paste any meeting URL (Teams, Zoom, Google Meet, etc.).
    • Enable recording — opt-in. Recordings are stored in MinIO and surfaced on the meeting detail page.
  3. Pick participants from the list of portal users.
  4. Click Schedule meeting.

Participants are portal users only. The meeting creator becomes the host. There is no calendar-invite email and no field for external email attendees — invited users see the meeting in their list and can Accept or Decline.

Joining a Meeting

Open a meeting and click Join now. A meeting auto-starts when its first participant joins.

What happens next depends on the provider:

  • Jitsi / External — a button opens the room in a new tab. Jitsi runs in the browser; external rooms use their own client.
  • Internal (browser) — a built-in room loads in the current tab with audio / video, screen-share, participant list, and chat sidebar.

Available controls (depending on provider):

  • Mute / unmute microphone.
  • Toggle camera.
  • Screen share.
  • In-meeting chat.
  • Raise hand (Jitsi / Internal).
  • Recording (host only, if enabled at schedule time).

Ending a Meeting

The host can end the meeting for everyone; participants see a "Host ended the meeting" message and the meeting status moves to ENDED. Hosts can also Cancel a meeting before it starts (status moves to CANCELLED).

Recordings

If a meeting was scheduled with Enable recording, the recording is processed after the meeting ends and appears on the meeting detail page. Recordings are stored in MinIO and streamable in the browser; download is gated by portal permissions.

API Access (for external calendar sync)

The meetings service is reachable through the portal BFF. Most external integrations want to read scheduled meetings to surface them in a calendar (Google Calendar, Outlook, etc.) or to power a "join from your calendar invite" workflow.

# Authenticated.
TOKEN=$(curl -s -X POST https://portal.kwgroup.org.uk/api/auth/login \
  -H 'content-type: application/json' \
  -d '{"email":"you@example.com","password":"...","mfaCode":"123456"}' \
  | jq -r .accessToken)

# List your meetings for the current week.
curl -s -H "authorization: Bearer $TOKEN" \
  "https://portal.kwgroup.org.uk/api/meetings?from=2026-06-01T00:00:00Z&to=2026-06-08T00:00:00Z"

# Get the details of a single meeting (including provider URL + recording if any).
curl -s -H "authorization: Bearer $TOKEN" \
  https://portal.kwgroup.org.uk/api/meetings/<id>

The provider URL for a Jitsi or external meeting is only included if the authenticated user is a participant or the host. Recordings are only listed for users on the meeting's participant list.

See Also

  • Calls / Softphone — for SIP-based phone calls (not video meetings)
  • Calendar — see project task deadlines alongside meetings

Still need help?

Log a support ticket and the team will pick it up from this page.