CalDAV-native room booking for Nextcloud. Rooms appear as bookable resources in any calendar app — no separate booking interface needed.
- CalDAV Resources — Rooms show up in Nextcloud Calendar, Apple Calendar, Outlook, eM Client, Thunderbird
- Auto-accept / Approval workflow — Per-room setting: instant confirmation or manager approval
- Conflict detection — Automatic overlap checking, conflicting bookings are declined
- Permission system — Viewer / Booker / Manager roles per room, user and group based
- Room groups — Organize rooms into groups with shared permissions
- Availability rules — Restrict booking hours per room (e.g., weekdays 08:00–18:00)
- Booking horizon — Limit how far in advance rooms can be booked
- Email notifications — Booking confirmations, decline notices, approval requests with iCalendar attachments
- Per-room SMTP — Each room can have its own SMTP config (passwords encrypted via ICrypto)
- Custom room types — Define and manage room types (meeting room, studio, lecture hall, etc.)
- Public REST API — Bearer token API for external integrations (displays, kiosks, digital signage)
- CSV Import/Export — Bulk room management, with MS365/Exchange format support
- Client compatibility — Fixes for iOS (CUTYPE=INDIVIDUAL) and eM Client (LOCATION-only booking)
- No database — All configuration stored via Nextcloud's IAppConfig
- Nextcloud 32–33
- PHP 8.2+
- Go to Apps in your Nextcloud instance
- Search for RoomVox
- Click Install
# Clone into Nextcloud apps directory
cd /var/www/nextcloud/apps/
git clone https://github.com/nextcloud/RoomVox.git roomvox
# Install PHP dependencies
cd roomvox
composer install --no-dev
# Build frontend
npm ci
npm run build
# Enable the app
sudo -u www-data php /var/www/nextcloud/occ app:enable roomvox- SMTP must be configured in Nextcloud (Settings > Administration > Basic settings > Email server)
sendInvitationsmust be enabled for iMIP calendar invitations:
sudo -u www-data php /var/www/nextcloud/occ config:app:set dav sendInvitations --value yes- Admin creates rooms via the admin panel (Settings > Administration > RoomVox)
- Rooms appear as bookable resources in any CalDAV-compatible calendar app
- Users book rooms by adding them to calendar events
- RoomVox handles everything — scheduling, conflict detection, permissions, and notifications
| Feature | Description |
|---|---|
| CalDAV native | Rooms are standard CalDAV resources, compatible with any calendar app |
| Zero database | All data stored in Nextcloud's IAppConfig — no migrations needed |
| Smart scheduling | Priority 99 Sabre plugin handles iTIP before Nextcloud's default handler |
| Permission inheritance | Room groups share permissions with their rooms |
| Client fixes | Automatic workarounds for iOS and eM Client quirks |
| Client | Status | Notes |
|---|---|---|
| Nextcloud Calendar | Full support | Optional visual room browser via calendar patch |
| Apple Calendar (macOS/iOS) | Full support | Auto-fix for CUTYPE=INDIVIDUAL |
| Microsoft Outlook | Full support | Via CalDAV account |
| Thunderbird | Full support | Via CalDAV account |
| eM Client | Full support | Auto-fix for LOCATION-only bookings |
npm run dev # Development build
npm run watch # Watch mode with auto-rebuild
npm run build # Production buildFull documentation is available in the docs/ directory:
- Getting Started — Create your first room in 5 minutes
- User Guide — How to book rooms
- Admin Guide — Installation and configuration
- Architecture — Technical overview
- API Reference — REST API endpoints
AGPL-3.0-or-later
Sam Ditmeijer & Rik Dekker





