Timeshare
Collaborative Calendar Sharing App
A cross-platform calendar app designed for people with irregular schedules. Quickly create, share, and manage events across multiple calendars. Perfect for nurses, healthcare workers, and anyone who needs flexible event copying without traditional recurrence rules.
About
Timeshare is a Flutter-based calendar sharing application designed to be easier to edit than traditional calendar apps. Instead of complex recurrence rules, Timeshare lets you quickly copy events to any dates by simply selecting an event and tapping dates. This makes it ideal for nurses, healthcare workers, and anyone with rotating or irregular schedules.
Share calendars with friends and family, manage multiple calendars with visual filtering, and view your schedule in month, two-week, or week formats. The app is backed by a Django REST API with data encrypted at rest and secure API key authentication.
Key Features
Quick Event Copying
Select an event and tap dates to copy it instantly. No complex recurrence rules needed for irregular schedules.
Friends & Sharing
Send friend requests by email, then share calendars with accepted friends. Ownership transfers let you hand off calendars.
Multiple Views
Month, two-week, and week calendar displays. Toggle visibility of multiple calendars with filtering.
Visual Markers
Custom colors and shapes for events. Up to 4 visual markers per calendar day for quick identification.
Event Recurrence
Traditional recurrence patterns (daily, weekly, monthly, yearly) with optional end dates when needed.
Cross-Platform Sync
REST API backend keeps all your devices in sync. Secure authentication with API keys stored locally.
Platforms
Timeshare is built with Flutter for true cross-platform support. One codebase, three platforms.
Tech Stack
- Flutter - Cross-platform UI framework
- Riverpod - State management with provider pattern
- Django + REST Framework - Backend API
- PostgreSQL - Relational database with encryption at rest
- Freezed - Immutable data class generation
- Flutter Secure Storage - Secure API key storage on device
Architecture
Timeshare follows a clean, layered architecture with clear separation of concerns:
- REST API Backend - Django REST Framework with PostgreSQL storage
- Repository Layer - Abstract repositories with interface/implementation pattern
- State Management - Riverpod providers for caching and reactive updates
- UI Layer - Flutter ConsumerWidgets that react to provider state changes
- Data Models - Freezed immutable classes (Calendar, Event, AppUser)
Server-side authorization enforces access control: calendar owners have full access, shared users can read and modify events but cannot change sharing settings or delete calendars. Version fields enable optimistic locking for conflict detection.