Back to Overview

Jitsi Meet Integration

Give every booking its own room on a Jitsi Meet server you run, optionally locked down with token authentication so only the people invited can get in.

Luka Breitig, Software Engineer & AI Developer
Luka Breitig

Updated September 17, 2026

What You Will Achieve

By the end of this guide, Tymeslot will create a room on your own Jitsi Meet server for every booking. If your server uses token authentication, each link you and your guest receive will carry its own access token for that one room.

Prerequisites

  • A Jitsi Meet server you run, reachable by you and your guests
  • For token authentication (optional): access to the server's Prosody configuration, or to the environment file of a Docker installation

Tymeslot never contacts your Jitsi server when you add the integration or when someone books; it only builds the links. The one exception is Test connection on the dashboard, which refuses a server at a private address unless a self-hosted Tymeslot sets ALLOW_PRIVATE_IPS_FOR_VIDEO=true. A Jitsi server on an internal network therefore works, on the managed service too, for every participant who can reach it.

8x8 JaaS is not supported

Jitsi as a Service from 8x8 only accepts tokens signed with a key pair you upload to 8x8, and Tymeslot signs its tokens with a shared secret, so it cannot connect to JaaS.

Why not the public meet.jit.si?

Since August 2023, the public meet.jit.si server requires the host to sign in with a Google, GitHub or Facebook account before a meeting can start. A scheduled booking there means someone has to sign in when the meeting begins, or your guest waits in an empty room. That is why Tymeslot leaves the server address blank rather than filling in meet.jit.si for you. You can still use it; see the questions at the end of this guide.

How It Works

Jitsi rooms are addressed by URL alone, so Tymeslot does not need an API to create them. When someone books, Tymeslot works out a room name, a 16-character hash derived from the booking, and adds it to your server's address: https://meet.example.com/3f9a1c07b2d84e65 . Each booking produces a different name, so no two meetings share a room.

A server without authentication lets in anyone who has the link. A server with token authentication also expects a signed token in the link. If you give Tymeslot your server's App ID and secret, it signs a separate token for you and for your guest and adds it to each person's link.

1 Connect your Jitsi server

  1. Go to DashboardIntegrationsVideo.
  2. Click Connect a video provider and choose Jitsi Meet under Self-hosted.
  3. Give the integration a name if you want something other than the default.
  4. Enter your server's address in Server URL, for example https://meet.example.com
  5. If your server lets anyone in, leave App ID and App secret blank. If it uses token authentication, complete Step 2 before saving.
  6. Click Add Integration.

Expected result: your Jitsi server appears in your list of video integrations.

2 Add token authentication (optional)

Skip this step if your server admits anyone. Otherwise, Tymeslot needs the same App ID and secret your server checks tokens against. On a server installed from packages, they sit in the Prosody configuration for your Jitsi domain, usually /etc/prosody/conf.d/meet.example.com.cfg.lua :

VirtualHost "meet.example.com"
    authentication = "token"
    app_id = "your_app_id"
    app_secret = "your_app_secret"

On a Docker installation, the same values are environment variables in your .env file:

ENABLE_AUTH=1
AUTH_TYPE=jwt
JWT_APP_ID=your_app_id
JWT_APP_SECRET=your_app_secret

Enter the App ID in App ID and the secret in App secret. Tymeslot needs both or neither: it refuses one without the other.

The secret must be at least 32 characters

Every link Tymeslot sends to a guest carries a token signed with this secret. Anyone holding one of those links can try guessing secrets offline, as fast as their hardware allows, until one produces the same signature. A long random secret puts that out of reach; a short one does not. Tymeslot therefore requires a secret of at least 32 characters (bytes) and refuses a shorter one. If yours is shorter, generate a new one on the server and update your Jitsi configuration first:

openssl rand -hex 32

What Tymeslot does with the credentials

  • It signs one token for you and one for your guest, and adds each to that person's link as ?jwt=…
  • Each token admits its holder to that booking's room only, never to other rooms on your server
  • Each token expires four hours after the meeting's scheduled start, so an old link cannot be reused later
  • Each token carries the person's name and email address, so they appear under their own name in the meeting

The plain room link cannot get past token authentication

Only the personal links Tymeslot sends to you and your guest carry a token. Anyone given the plain room link instead cannot enter a server that requires tokens. That includes additional guests, and anyone joining from the calendar event or its invitation file.

Who becomes moderator

Your token marks you as moderator and your guest's does not. A standard Jitsi server ignores that marking:

  • On a Debian or Ubuntu installation with jitsi-meet-tokens , whoever joins first becomes moderator, guest or not.
  • On docker-jitsi-meet with AUTH_TYPE=jwt, everyone holding a token becomes moderator.

For the marking to decide who moderates, configure your server as follows:

  1. Run Jitsi Meet stable release 10978 (May 2026) or later.
  2. Add token_affiliation to the main MUC component, beside token_verification . On Docker, add token_affiliation to XMPP_MUC_MODULES (comma-separated).
  3. Turn off Jicofo's automatic moderator with jicofo.conference.enable-auto-owner = false . On Docker, set ENABLE_AUTO_OWNER=0 and also JICOFO_ENABLE_AUTH=0 .
  4. If you use muc_wait_for_host , set wait_for_host_disable_auto_owners = true . On Docker, set WAIT_FOR_HOST_DISABLE_AUTO_OWNERS=true.

With that in place, you are moderator whenever you are in the room. A guest who arrives early waits without moderator controls until you join.

3 Enable Jitsi on a meeting type

Each meeting type chooses its own video provider. Repeat these steps for every meeting type that should use Jitsi:

  1. Go to DashboardMeeting Types and pick a meeting type.
  2. In the Location section, choose Video Meeting.
  3. Under Select Video Provider, select your Jitsi integration.
  4. Save.

Expected result: the next booking on this meeting type carries its own room link on your Jitsi server.

Frequently Asked Questions

Do I need token authentication?

No. Without it, Tymeslot sends the plain room link and anyone who has it can join. The room name is a hash that differs for every booking and cannot be worked out without the booking's internal ID, which is enough for many setups.

Tokens help when you want the server itself to refuse anyone who does not hold a valid link, for example to stop strangers using your server for their own meetings.

Can I use meet.jit.si anyway?

Yes. Enter https://meet.jit.si as the server URL and leave both credentials blank. Bear in mind the caveat above: someone has to sign in with a Google, GitHub or Facebook account before the meeting can start, so plan for that at meeting time.

What happens if Tymeslot cannot create a token?

That almost never happens: creating a token only fails if the App ID, the App secret or the room name is missing, or on an unexpected error while signing. If it does, the booking keeps its plain room link and Tymeslot logs why. A server that requires tokens refuses that link.

Guests are refused even with their personal link

Check that the App ID and App secret in Tymeslot match your server's configuration. Tymeslot signs a token with whatever credentials you gave it and has no way to tell they are wrong, so a mismatch only shows up when your server rejects the token.

Verify the integration is working

Book a test appointment on a meeting type that uses Jitsi, then confirm each of the following:
  • On DashboardMeetings, the booking shows a Join Meeting button that links to a room on your Jitsi server
  • The booking confirmation email contains a link to the same room
  • With token authentication, the links in your email and your guest's email each end in a different ?jwt=… value
  • Opening your personal link from the confirmation email loads the Jitsi room without asking anyone to sign in

🔗 Related Articles

Read Google Meet Integration

Google Meet Integration

Auto-create Google Meet rooms for every confirmed booking via the Calendar API. Attendees receive the link by email and can join without a Google account.

Read Microsoft Teams Integration

Microsoft Teams Integration

Auto-create Microsoft Teams meetings for every confirmed booking. Covers the Graph permissions Tymeslot asks for, when a tenant admin has to consent, and what happens when an account cannot host meetings.

Read Zoom Integration

Zoom Integration

Auto-create Zoom meetings for every confirmed booking. Works with Zoom Pro, Business, and Enterprise accounts via OAuth — free Zoom accounts cannot create meetings programmatically.