
BetterShift
Self-hosted shift management for teams: unlimited calendars, one-click shifts, sharing, external calendar sync, and ICS/PDF export.
Open source alternative to:


BetterShift is a self-hosted shift management application for teams and individuals with variable work schedules, built by panteLx and released under the MIT license. You create unlimited calendars with custom colors and names, define reusable shift presets with labels, times, and colors, and toggle shifts with a single click on a calendar view. Everything runs from a single Docker container with SQLite storage, making it one of the simplest shift planners to self-host.
Where it goes beyond a plain calendar is sharing and collaboration: team members get user accounts, or you can share calendars via guest access or shareable links. It syncs external calendars from Google Calendar, Outlook, or generic iCal feeds, and exports your own calendars as ICS or PDF. An admin panel covers user management, calendar administration, role-based permissions, and audit logging, with real-time statistics and visual charts for shift tracking.
Compared to paid scheduling SaaS like Sling, When I Work, Connecteam, Deputy, or Homebase, BetterShift drops the per-user pricing, time-clock, and payroll machinery and focuses purely on shift planning and sharing — you own the data, and there is no user limit. Authentication supports email/password, OAuth via Google, GitHub, and Discord, and custom OIDC. The UI is localized in English, French, German, Italian, Spanish, and Czech, and the app is an installable PWA on mobile and desktop.
Categories:
Build with:
Frequently Asked Questions
How do I install BetterShift?
The quickest way is a single Docker container: docker run with port 3000 mapped and ./data plus ./public/uploads mounted as volumes, setting BETTER_AUTH_SECRET and TZ. A docker-compose setup is also provided in the repository, and you can run it from source with npm install and npm run dev. The first registered user automatically becomes superadmin.
Which external calendars can BetterShift sync with?
BetterShift can subscribe to external calendars from Google Calendar, Outlook, or any calendar exposing an iCal (ICS) feed, so your shifts appear alongside your existing events. On the export side, calendars can be downloaded as ICS or PDF.
How can I share my shift calendar with my team?
There are three ways: give teammates user accounts on your instance, enable guest access, or generate a shareable link. Sharing is governed by role-based permissions that are managed from the admin panel, and all changes are recorded in an audit log.
What authentication options does BetterShift support?
Email and password, OAuth sign-in with Google, GitHub, or Discord, and custom OIDC providers. Authentication can be disabled entirely for single-user instances by setting AUTH_ENABLED=false, and can be enabled later on an existing instance following the upgrade guide.
Which languages does BetterShift support?
The interface is localized in English, French, German, Italian, Spanish, and Czech. As an installable PWA, it also works on mobile and desktop like a native app.
OpenAltFinder Score
Project Details
Repository details
Updated 9/13/2026, 8:00:17 AM
View Repository







