A feature-rich calendar application for tracking rotating shift patterns. Fully configurable - create your own shift types, set your own colors, define your own rotation patterns. Available in two versions: CalPal (full) and CalPal Lite (free).
- Create Custom Shifts - Add up to 5 shift types with your own names, times, colors & labels
- Build Your Pattern - Design 1-8 week rotation cycles with visual editor
- Export to Downloads - Save patterns as JSON files to share with colleagues
- CalPal (Full): Google Play Store | App Store
- CalPal Lite (Free): Google Play Store | App Store
The complete shift tracking experience with all features.
| Feature | Description |
|---|---|
| Custom Shifts | Create up to 5 shift types with custom names, start/end times, colors, and labels |
| Pattern Builder | Design patterns from 1 to 8 weeks with visual editor |
| Three Views | Year, Month, or Weeks view |
| Themes | Midnight (dark/cyan), Dark Mode (dark/blue), Daylight (light) |
| Notes | Add memos to any day |
| Holidays | UK & Ireland bank holidays (2024-2030) |
| Export | Send schedule to Google Calendar, Apple Calendar, or Outlook (iCal format) |
| Import/Export Patterns | Export to Downloads folder, share patterns via JSON |
| Statistics | View by Month, Quarter, Year-to-Date, or Full Year with estimated hours |
| Swap Tracking | Mark shifts swapped with colleagues |
| Upcoming Shifts | Collapsible panel showing next 5 working days |
| Tap to Cycle | Single tap to cycle through shift types |
| Long-Press Menu | Quick access to notes, swap, and override options |
| Swipe Navigation | Swipe left/right on mobile |
| Jump to Today | Quick button to return to current date |
- Days (Green): 9:00 AM - 5:00 PM
- Nights (Purple): 9:00 PM - 7:00 AM
- Evenings (Orange): 2:00 PM - 10:00 PM
- Booked Off (Red): User-marked time off
- Swapped (Dark Blue): Shift exchanged with colleague
- Off (Gray): No scheduled shift
A simplified, free version for users who need basic shift tracking.
| Feature | Description |
|---|---|
| Custom Shifts | Create up to 3 shift types with custom names, times, and colors |
| Pattern Builder | Design patterns from 1 to 3 weeks |
| Three Views | Year, Month, or Weeks view |
| Tap to Cycle | Single tap to cycle through shift types |
| Statistics | Monthly shift counts |
| Swipe Navigation | Swipe left/right on mobile |
| Jump to Today | Quick button to return to current date |
- Multiple themes (Midnight only)
- Notes feature
- Holiday markers
- Export/Import
- Patterns longer than 3 weeks
- Swap tracking
- Extended statistics periods
| Feature | CalPal ($2.99) | CalPal Lite (Free) |
|---|---|---|
| Custom Shifts | Up to 5 | Up to 3 |
| Pattern Builder | 1-8 weeks | 1-3 weeks |
| Themes | 3 themes | Midnight only |
| Notes | Yes | No |
| Holidays | UK & Ireland | No |
| Export/Import | Yes | No |
| Swap Tracking | Yes | No |
| Statistics | 4 periods | Month only |
| Views | Year/Month/Weeks | Year/Month/Weeks |
| Ads | No | No |
Both apps are completely offline:
- No data collection
- No accounts required
- No cloud sync
- No tracking
- No ads
All data stays on your device. See PRIVACY_POLICY.md for details.
# Serve locally
python3 -m http.server 8080
open http://localhost:8080# Set Java environment
export JAVA_HOME=/opt/homebrew/opt/openjdk@21
export PATH="$JAVA_HOME/bin:$PATH"
# CalPal (Full)
npx cap sync android
cd android && ./gradlew assembleDebug && cd ..
# CalPal Lite
cd calpal-lite
npx cap sync android
cd android && ./gradlew assembleDebug && cd ..# CalPal (Full)
npx cap sync ios
npx cap open ios
# CalPal Lite
cd calpal-lite
npx cap sync ios
npx cap open iosSee the release/v1.0/ directory for:
- Google Play submission guide
- Store listings
- Data safety responses
- Screenshot requirements
- Privacy policy
- CalPal:
com.calpa.shiftcalendar - CalPal Lite:
com.calpa.shiftcalendar.lite
- CalPal:
calpal_*(localStorage) - CalPal Lite:
calpal_lite_*(localStorage)
- Single HTML file with embedded CSS/JS
- No external dependencies (runtime)
- Capacitor for native builds
- Responsive design (mobile & desktop)
- Nurses & healthcare workers
- Factory & manufacturing
- Security personnel
- Emergency services (police, fire, paramedics)
- Retail workers
- Hospitality staff
- Anyone on rotating shifts
MIT