Skedda Companion can be deployed in a few different ways depending on your IT environment. Some teams prefer to have users install it themselves, while others want to distribute it centrally using endpoint management tools. For more information about how the Companion works and where to find it once it is installed, view our overview guide.
New in version 1.2: zero-touch enrollment. If you deploy the Companion through an MDM (Intune, Jamf, Kandji or similar), you can now sign each device in to the Skedda account of the person who uses it. Once the app is installed, use your MDM to run an enrollment command on each device with your venue's enrollment key and the person's email. Employees don't need to open the app or sign in. See Zero-touch enrollment below.
If you install without enrollment, or people install the app themselves, each person is required to sign in once after installation. Make sure this is communicated across your organization.
Choosing a deployment method
Method | Best for | Does each person sign in? |
MDM install + zero-touch enrollment (Options 1–3) | Managed fleets where you want full coverage with no employee action | No |
MDM install only (Options 1–3) | Managed fleets where people sign in themselves | Yes, once |
Manual installation (Option 4) | Small teams, pilots, unmanaged devices | Yes, once |
Download links
Mac (Apple silicon and Intel): https://app.skedda.com/companion-app/installer-latest/darwin-aarch64-pkg
These links always serve the latest version. Installed apps keep themselves up to date automatically.
Option 1: Microsoft Intune deployment for Windows
Because the Skedda Companion is delivered as an .exe installer rather than an .msi, it should be packaged in Intune as a Win32 app. MSI files usually give Intune more install and detection information automatically. EXE files are more flexible, but IT usually has to define the install command and detection rule manually.
Windows installer link: https://app.skedda.com/companion-app/installer-latest/windows-x86_64
Important setup note
The Windows installer is a per-user install. It installs into the signed-in user's local profile rather than as a system-wide application.
Install location: %LOCALAPPDATA%\Skedda Companion\
Because of that, set the Intune install behavior to User, not System. If you deploy in System context, the app may install into the SYSTEM profile instead of the employee's profile.
Silent install command
Replace the version in the filename as needed:
skedda-companion-1.2.0-windows-x86_64.exe /S /R
Flags
/S = silent install
/R = launch the app immediately after install
Optional: /NS = skip Start Menu and Desktop shortcut creation
To sign devices in automatically, follow the silent install with the enrollment command in Zero-touch enrollment below. Package both steps as one Win32 app with Install behavior: User.
Recommended detection rule
Use a file-based detection rule:
Path:
%LOCALAPPDATA%\Skedda CompanionFile:
skedda-companion.exeDetection method: String (version)
Operator: Greater than or equal to
Value: 1.2.0.0 (Windows reports the file version in four parts)
If detection is inconsistent
Because the app installs per user, a PowerShell detection script can be more reliable than a plain file rule in some environments. In that case, the script should:
resolve the signed-in user's LocalAppData
check for Skedda Companion\skedda-companion.exe
compare the file version against 1.2.0.0
Best for
Intune-managed Windows environments
Organizations that want centralized distribution
Teams comfortable managing per-user Win32 app installs
Option 2: Intune or MDM deployment for Mac
For Mac environments, distribute the Companion with the .pkg installer through your existing Mac management workflow.
Best for
Centrally managed Mac fleets
Organizations using Intune, Jamf, Kandji, Mosyle, Addigy, or similar tools
Teams already used to package-based Mac deployments
Mac package link
Mac (Apple silicon and Intel): https://app.skedda.com/companion-app/installer-latest/darwin-aarch64-pkg
How it works
Your IT team distributes the package through its normal Mac software deployment process. The package installs to /Applications/Skedda Companion.app and launches the app for the logged-in user. Then either:
run the enrollment script in Zero-touch enrollment above, so users don't need to sign in, or
let users sign in to the app individually after installation.
Notes
The package works on both Apple silicon and Intel Macs.
Confirm package compatibility with your Mac fleet before wide rollout.
Without zero-touch enrollment, users need to sign in once after install.
Option 3: Other managed Windows deployment tools
If you don't use Intune, you can still distribute the Companion using other endpoint management tools.
Best for
RMM or UEM platforms
Login-script based software rollout
Other managed Windows environments
Important setup note
Because the app is a per-user Windows install, deploy it in the signed-in user's context, not system context.
How it works
Your IT team uses its existing deployment tool to:
run the installer silently
install the app into the user profile
optionally run the enrollment command from Zero-touch enrollment above, so users don't need to sign in
optionally check the install using the executable path and version
Option 4: Manual user installation
This is the simplest rollout method, although it usually takes the longest because each member of your team has to take action. People on both Mac and Windows can use it.
Best for
Small teams
Initial testing
Organizations without centralized device management
How it works
Each user:
downloads the Skedda Companion
installs it on their work computer
signs in once with their Skedda account email
Download links
Send your users the install link for their device:
Mac (Apple silicon and Intel): https://app.skedda.com/companion-app/installer-latest/darwin-aarch64-pkg
Zero-touch enrollment
Zero-touch enrollment has two parts.
First, install the app silently using one of the options above. Then run the app once with an install command that carries your venue's enrollment key and the employee's email. The app swaps these for a sign-in that belongs to that device and starts reporting presence straight away.
Before you start
Occupancy tracking must be on, with your office's public IP addresses added in Settings → Occupancy tracking.
Each person needs an active Skedda account at your venue. The email you supply for each device must match the email on their Skedda account.
Use version 1.2.0 or later. Older versions ignore the install command.
Get your enrollment key
In Skedda, go to Settings → Occupancy tracking. You need to be a system administrator.
Make sure Enable occupancy tracking is on.
Under Skedda Companion enrollment key, click Show key, then copy it.
The key starts with sk_venue_. Keep the key secret and only put it in your MDM's deployment settings. On its own, the key can't sign anyone in. It can only enroll a device for someone who is already an active member of your venue. Even so, anyone who has the key could enroll a device for any of your members.
Enroll a Windows device
After the silent install (see Option 1 or Option 3), run this PowerShell script in the same user context as the install:
$email = whoami /upn # the signed-in user's work email (UPN)
& "$env:LOCALAPPDATA\Skedda Companion\skedda-companion.exe" install --enrollment-key sk_venue_XXX --user-email $email
You set this up once in your MDM and it runs on every device. Only the key is fixed. The email is looked up on each device, here as the signed-in user's work email (UPN). This works when that email matches the person's Skedda email. In Intune, package the silent install and this script together as one Win32 app.
If the app is already running, the command is passed to the running app and takes effect without a restart.
Enroll a Mac
Replace the key. The email must be each person's own Skedda email, looked up on each device. How you do this depends on your setup: for example, build it from the Mac's username, read it from your directory, or look it up through your MDM.
#!/bin/bash
ENROLLMENT_KEY="sk_venue_XXX"
USER_EMAIL="jane.doe@example.com" # replace with how your MDM supplies each person's email
CONSOLE_USER=$(stat -f%Su /dev/console)
# Stop the copy the package launched. macOS doesn't pass arguments to an app that's already running.
pkill -x "skedda-companion" || true
sleep 2
# Relaunch as the logged-in user, with the enrollment values.
sudo -u "$CONSOLE_USER" "/Applications/Skedda Companion.app/Contents/MacOS/skedda-companion" install \
--enrollment-key "$ENROLLMENT_KEY" --user-email "$USER_EMAIL" &
Don't skip the stop step. The package launches the app automatically without enrollment values, and macOS won't pass new arguments to an app that's already running. The script must also launch the app as the logged-in console user, not as root.
Confirm it worked
The install command runs silently. It prints no output and returns no success or failure code, so your MDM will report it as run whether or not enrollment worked. There's currently no list of enrolled devices in Skedda, so check enrollment in either of these places:
On the device: click the Skedda icon in the menu bar (Mac) or system tray (Windows). An enrolled device shows Seen on-site today at … when it's on your office network, or Not yet detected on-site today when it's elsewhere. While it's enrolling, it briefly shows Status: Setting up…
In Skedda: the person shows as seen on-site once their device connects to the office network.
Running the install command again
Running the install command again is safe. A device that's already enrolled keeps its existing sign-in, so the command works well as a recurring MDM policy that also catches devices that missed the first run.
To move a device to a different person, for example a reassigned laptop, run the command again with the new person's email.
Troubleshooting
The tray shows "Status: Waiting for setup". The device hasn't enrolled. The enrollment key and email are held in memory only and never saved to disk, so if the device restarts or shuts down before enrollment completes, it waits. Fix: run the install command again (MDM re-push or recurring policy).
Enrollment is rejected. The device stops trying and shows Waiting for setup. Check the following, then run the install command again:
Key: it's mistyped or isn't your venue's current key, or occupancy tracking is turned off at your venue.
Email: it doesn't match an active member of the venue that owns the key.
Many devices enrolling at once from one office. Enrollment is rate-limited per network address. If hundreds of devices behind the same office IP enroll at the same moment, some are paused and retry automatically a few times. Devices that still aren't enrolled after that wait for the next run of the install command. For large fleets, stagger the rollout or use a recurring policy.
A device shows "Waiting for setup" after working before. The person no longer has an active membership at any of your Skedda venues, so the device signed itself out. If they've rejoined, run the install command again.
Someone signed out of the app. Signing out removes the device's sign-in. Run the install command again, or ask the person to choose Sign In... from the tray menu.
Log files. These are kept on the device: ~/Library/Logs/com.skedda.companion/ on Mac, and the app's folder under %LOCALAPPDATA% on Windows.
Enrollment doesn't start on some Windows devices. whoami /upn only returns an email for work accounts (Entra ID or domain-joined). On local accounts, supply the email another way.
Good to know
Disk images: the device identity comes from the operating system's machine ID (on Windows, MachineGuid). Generalize Windows images with Sysprep before capture, or cloned machines will share one identity and their enrollments will overwrite each other.
Command-line visibility: while the install command runs, its arguments, including the enrollment key, can appear in the device's process list. Deliver the command through your MDM rather than sharing it with employees.
Network allowlist: unchanged. The Companion only connects outbound over HTTPS to *.skedda.com:443.
Manual sign-in still works on every install. Signing in manually doesn't replace a device that's already enrolled.
What happens after installation
Once the app is installed:
The user is signed in, either automatically through zero-touch enrollment or by signing in once with their Skedda account email.
The app starts automatically at login and runs quietly in the background.
When the device is detected on the office network, Skedda can use that signal for occupancy tracking.
If configured, Skedda can also check people in to eligible bookings automatically.
Recommended rollout path
Use zero-touch enrollment if:
You deploy through Intune, Jamf, Kandji or a similar tool, and want every device signed in without relying on employees to do it.
Use Intune for Windows if:
You manage a Windows fleet, want centralized deployment, and are comfortable deploying Skedda Companion as a per-user install in User context.
Use Mac MDM if:
You manage a Mac fleet and want a lower-touch rollout by centrally distributing the Companion as a .pkg through your preferred MDM solution.
Use manual install if:
You want the simplest way to get started, are rolling out to a smaller group, or are testing with an initial set of users before a broader deployment.
Existing installations
Installed copies of the Companion update themselves to version 1.2 within about a day, as long as the app is running. People who are already signed in stay signed in, with no action needed.
To enroll devices that were installed earlier but never signed in, deploy the 1.2.0 installer first, then run the install command.

