Veeting Blocks – Components

How to run the Block Examples

Veeting Blocks always require an active meeting. You can schedule meetings through our web application or through our REST APIs.

Every Block on this page is live. Join a meeting with the controls below, and the examples connect to it, so you can see what each component does before you write any code.

The Blocks documented here are the ones you need for a meeting: video, audio, screensharing, whiteboard, documents, agenda, chat, polls, minutes, notes, the AI assistant, the participants list and the join form. The library ships more of them, including breakout rooms, webinar controls, language channels, the lobby and picture-in-picture. This page is not the full list. Ask us if you need one that is not here.

If you don't have an account yet and just want to try the Blocks, generate a demo meeting ID here:

If you have an existing meeting ID, copy it into the text field below and click Join meeting:

Using this page with an AI assistant

If you are using an AI coding assistant, copy the text below into it and add a sentence describing what you want to build. AI assistants accessing this page receive a separate, token-optimized version of our full developer documentation, specifically tailored by our engineers for AI coding assistants.

Before writing any code, read this page:
https://www.veeting.com/en/veeting-blocks/components

It documents the Veeting Blocks web components. Keep these five
rules in mind:

1. Ask me for my Veeting white label domain. Do not guess one.
2. Every element is prefixed vrb-, for example <vrb-video>.
   There is no other prefix.
3. A Block fills its parent element and has no size of its own.
   Give every parent an explicit height, or the page renders
   empty and looks broken.
4. Blocks render nothing until Blocks.init() has completed and a
   meeting has been joined. An empty Block before that is normal.
5. Do not invent element names. If a component is not on this
   page, ask me rather than guessing what it might be called.

What I want to build:

Video Block

Overview

The video Block displays the videos of the meeting participants.

<vrb-video
    has-mute-control-buttons="true"
    has-action-control-buttons="true"
    container-layout="standard">
</vrb-video>

Parameters

NameTypeDescription
has-mute-control-buttonsBooleanOptional, hides the mute buttons if set to false, defaults to true
has-action-control-buttonsBooleanOptional, hides the volume control and raise hand buttons if set to false, defaults to true
video-onlyBooleanOptional, shows a single video and forces the "fill" layout. Setting it to false has no effect, so leave the attribute off instead. Defaults to false.
container-layout"standard" or "fill"Optional, switches the video display layout between "standard" and "fill". Defaults to "fill".

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Device Selection Block

Overview

This Block displays a form where users select their audio and video devices.

<vrb-device-selection
    show-audio-settings="true"
    show-video-settings="true"
    auto-apply-new-devices="true">
</vrb-device-selection>

Parameters

NameTypeDescription
show-audio-settingsBooleanOptional, hides the microphone and speaker selection if set to false. Defaults to true.
show-video-settingsBooleanOptional, hides the camera selection if set to false, which is useful for audio-only meetings. Defaults to true.
auto-apply-new-devicesBooleanOptional, applies the newly selected devices immediately. If set to false, you must restart the media connections yourself. Defaults to false.

Events

The following events are available to subscribe to. Example:

document.querySelector("vrb-device-selection")
    .addEventListener("selection", (event) => {
        const saved = event.detail;
        console.log("Have the devices changed?", saved ? "Yes" : "No");
    });

Blocks are custom elements, so an event arrives as a CustomEvent and its value is on event.detail. This is not the same on() you use on Blocks.api, which is our own API object rather than a DOM element.

NameCallback typeDescription
selectionBooleanTriggered when the user clicks "Save" or "Cancel". The callback parameter is true if the user saved the selection, false if the user canceled.

Note

Changing the media devices stores the selected IDs in local storage. If the user is already in a meeting and you want the new devices to take effect right away, restart the media connections yourself:

document.querySelector("vrb-device-selection")
    .addEventListener("selection", (event) => {
        if (event.detail) {
            veeting.Blocks.api.restartMediaConnections();
        }
    });

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Screensharing Block

Overview

The screensharing Block displays the Meeting Screensharing tool.

<vrb-screensharing
    show-toolbar="true">
</vrb-screensharing>

Parameters

NameTypeDescription
show-toolbarBooleanOptional, shows the screensharing toolbar, defaults to true

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Whiteboard Block

Overview

The whiteboard Block displays the Meeting Whiteboard tool.

<vrb-whiteboard
  show-reduced-width="false"
  show-external-whiteboard-link="false"
  show-toolbar="true">
</vrb-whiteboard>

Parameters

NameTypeDescription
show-reduced-widthBooleanOptional, displays a smaller toolbar in the whiteboard, defaults to false
show-external-whiteboard-linkBooleanOptional, adds a QR code button to the toolbar for sharing the whiteboard with an external device, defaults to false
show-toolbarBooleanOptional, shows the whiteboard toolbar, defaults to true

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Documents Block

Overview

The meeting documents Block displays the Documents Sharing tool.

<vrb-documents
    show-reduced-width="false"
    show-toolbar="true">
</vrb-documents>

Parameters

NameTypeDescription
show-reduced-widthBooleanOptional, displays a smaller toolbar in the documents viewer, defaults to false
show-toolbarBooleanOptional, shows the documents toolbar, defaults to true

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Agenda Block

Overview

The meeting agenda Block displays the meeting agenda.

<vrb-agenda
    show-toolbar="true">
</vrb-agenda>

Parameters

NameTypeDescription
show-toolbarBooleanOptional, shows the agenda toolbar, defaults to true

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Chat Block

Overview

The meeting chat Block displays the Meeting Chat.

<vrb-chat
    show-toolbar="true"
    with="">
</vrb-chat>

Parameters

NameTypeDescription
withStringOptional, the meeting participant ID of an active participant. With an ID, the Block shows a private chat with that participant. Without one, it shows the group chat that every participant sees. Defaults to the group chat.
show-toolbarBooleanOptional, shows the chat toolbar, defaults to true

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Polls Block

Overview

The polls Block displays the Meeting Polls.

<vrb-polls
    show-toolbar="true">
</vrb-polls>

Parameters

NameTypeDescription
show-toolbarBooleanOptional, shows the toolbar to manage polls, defaults to true
shown-on-small-screenBooleanOptional, forces the compact layout that the Block otherwise uses only on narrow screens, defaults to false

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Minutes Block

Overview

The meeting minutes Block displays the Meeting Minutes.

<vrb-minutes
    show-toolbar="true">
</vrb-minutes>

Parameters

NameTypeDescription
show-toolbarBooleanOptional, shows the minutes toolbar, defaults to true

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Notes Block

Overview

The meeting notes Block displays the Private Notes.

<vrb-notes
    show-toolbar="true">
</vrb-notes>

Parameters

NameTypeDescription
show-toolbarBooleanOptional, shows the notes toolbar, defaults to true

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Assistant Block

Overview

The meeting assistant Block displays the Meeting Assistant.

<vrb-assistant></vrb-assistant>

Parameters

This Block takes no parameters.

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Participants Block

Overview

The meeting participants Block lists everyone currently in the room.

<vrb-participants
    hide-toolbar="false"
    show-filter="false">
</vrb-participants>

Parameters

NameTypeDescription
hide-toolbarBooleanOptional, hides the toolbar for inviting additional participants, defaults to false
show-filterBooleanOptional, shows the participants list filter, defaults to false

Example

Note: Check out "How to run the Block Examples" to see how you can run this example.

Join Meeting Block

Overview

The join meeting Block displays the standard join screen. Use it instead of joining through the Veeting Blocks APIs.

<vrb-join
    meeting-id="0000-0000-0000-0000"
    meeting-password="">
</vrb-join>

Parameters

NameTypeDescription
meeting-idStringRequired, the meeting ID of the meeting to join
meeting-passwordStringOptional, the meeting password which should be pre-filled in the form input

Events

The following events are available to subscribe to. Example:

document.querySelector("vrb-join")
    .addEventListener("success", () => {
        console.log("Meeting joined successfully");
    });

Blocks are custom elements, so an event arrives as a CustomEvent and any value is on event.detail. Note that event names keep their original spelling: attributes are dash-cased, event names are not.

NameCallback typeDescription
meetingLoadedIMeetingRoomConfigTriggered when the meeting has loaded. Gives you the meeting room configuration, for instance to check whether the meeting is currently open.
successvoidTriggered after the user has joined the meeting.
cancelvoidTriggered when the user clicks the logo on the join screen. Use it to send the user somewhere else.
authenticate{meetingId: string, meetingAuthType: MeetingRoomAuthType}Triggered when the meeting requires additional authentication before the user can join.

Not sure how to best implement your project?

Contact our team to discuss the details.