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 built for collaborative event scheduling. Unlike traditional calendar apps that rely on fixed recurrence patterns, Timeshare lets you quickly copy events to any dates by simply tapping them. This makes it ideal for people with rotating or irregular work schedules.
Share calendars with friends and family, manage multiple calendars with visual filtering, and view your schedule in month, two-week, or week formats. All data syncs in real-time across iOS, Android, and web.
Key Features
Quick Event Copying
Select an event and tap dates to copy it instantly. No complex recurrence rules needed for irregular schedules.
Calendar Sharing
Share calendars with friends via email search. Granular permissions for owners vs. shared users.
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.
Real-time Sync
Firebase-powered sync keeps all your devices updated instantly. Changes appear immediately for shared users.
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
- Firebase Auth - User authentication
- Cloud Firestore - Real-time NoSQL database
- Freezed - Immutable data class generation
- RxDart - Reactive stream programming
Architecture
Timeshare follows a clean, layered architecture with clear separation of concerns:
- Repository Layer - Abstract CalendarRepository with Firebase implementation
- State Management - Riverpod providers and notifiers (no local state caching)
- UI Layer - Flutter widgets with ConsumerWidget for reactive updates
- Data Models - Freezed immutable classes (Calendar, Event, AppUser)
Firestore Security Rules enforce access control: calendar owners have full access, shared users can read and modify events but cannot change sharing settings.