← Back to Home

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.

Timeshare app screenshot

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.

iOS Android Web

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.