mirror of
https://github.com/nextcloud/RoomVox.git
synced 2026-03-25 03:12:51 +01:00
No description
Documentation for NC Calendar PR #7996: - PROPOSAL.md: feature pitch with problem statement and comparison table - TECHNICAL.md: code-level change documentation for reviewers - SPLITTING-STRATEGY.md: plan for breaking into reviewable PRs - Compressed demo GIF (4MB) showing room finder interaction Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .gitea/workflows | ||
| appinfo | ||
| css | ||
| docs | ||
| img | ||
| l10n | ||
| lib | ||
| nc-calendar-patch | ||
| screenshots | ||
| src | ||
| templates | ||
| tests | ||
| .gitignore | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| composer.json | ||
| deploy-calendar.sh | ||
| deploy-tst.sh | ||
| deploy.conf.example | ||
| deploy.sh | ||
| fix-locations.sh | ||
| LICENSE | ||
| package.json | ||
| phpunit.xml | ||
| README.md | ||
| RELEASE_CHECKLIST.md | ||
| webpack.config.js | ||
RoomVox
CalDAV-native room booking for Nextcloud. Rooms appear as bookable resources in any calendar app — no separate booking interface needed.
Features
- 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
Screenshots
Room Management
Booking Overview
Room Browser (Calendar Integration)
Room Editor
CSV Import
Email Notifications
Requirements
- Nextcloud 32–33
- PHP 8.2+
Installation
From Nextcloud App Store
- Go to Apps in your Nextcloud instance
- Search for RoomVox
- Click Install
From Source
# 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
Prerequisites
- 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
How It Works
- 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
Technical Highlights
| 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 |
CalDAV Client Compatibility
| 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 |
Development
npm run dev # Development build
npm run watch # Watch mode with auto-rebuild
npm run build # Production build
Documentation
Full 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
License
AGPL-3.0-or-later
Authors
Sam Ditmeijer & Rik Dekker





