A beautifully crafted, native calendar app for the Apple ecosystem.
- iOS 26 Liquid Glass UI — True system glass (
glassEffect) with clean hairline borders(.ios26Glass); gracefulultraThinMaterialfallback on earlier OSes. - Real EventKit data everywhere — No mock content: every list, card, and complication renders live events from all device-linked accounts (iCloud, Google, Exchange), kept fresh by store-change observation and foreground refresh.
- Dynamic Island Integration — Expandable pill showing the next upcoming event with animated waveform bars.
- Interactive Notch View — macOS/iPad notch-style widget for at-a-glance event info, expanding on tap.
- Animated Background — Floating, breathing pastel orbs that adapt to light and dark mode.
- Multi-Platform Layout — Adaptive layouts for iPhone (tab bar + FAB), iPad/visionOS (3-panel sidebar), and macOS (icon rail + sidebar + detail) with full keyboard shortcuts (⌘N, ⌘T, ⌘←/→, ⌘1–4).
- Quick Add & Event Detail — FAB / ⌘N creates real events via EventKit; tap a card to inspect or delete (with confirmation).
- Settings — Calendar visibility filters per source, authorization status, last-sync time.
- Search — Live filtering across titles, notes, and locations.
- Widget Extension —
AnimaWidgethome-screen widget rendering the actual next event from a shared App Group snapshot, with live countdown and accurate reload policy. - Apple Watch App — Compact next-event card + today's schedule; complications in all four accessory families for the watch face.
Anima/
├── AnimaApp.swift # App entry point (+ macOS menu commands)
├── ContentView.swift # Root view — tab routing, iPhone/iPad/Mac layouts
├── Models/
│ ├── AppModel.swift # Shared @Observable app state (tabs, selection, sheets)
│ ├── AppSupport.swift # Locale-safe formatters (Fmt), accent color, settings deep link
│ ├── EventManager.swift # EventKit gateway: auth, fetch, search, mutations
│ └── SnapshotStore.swift # Next-event snapshot ↔ shared App Group
├── Views/
│ ├── Calendar/
│ │ ├── MonthView.swift # Dynamic month grid (real lengths/offsets)
│ │ ├── WeekStripView.swift # Current-week strip
│ │ └── ScheduleListView.swift # Event cards, Quick Add & detail sheets
│ └── Components/
│ ├── AnimatedBackgroundView.swift # Adaptive orb background
│ ├── DynamicIslandView.swift # Dynamic Island pill overlay
│ ├── InteractiveNotchView.swift # macOS/iPad notch widget
│ ├── SettingsView.swift # Calendar filters & status
│ └── GlassModifier.swift # .ios26Glass() design system
├── AnimaWidget/
│ └── AnimaWidget.swift # iOS home-screen widget (real next event)
├── AnimaWatch/
│ ├── AnimaWatchApp.swift # watchOS app entry point
│ └── WatchHomeView.swift # Next-event card + today's schedule
└── AnimaWatchWidget/
└── WatchComplications.swift # Accessory-family complications
| Platform | Min Deployment | Layout |
|---|---|---|
| iOS | 26.2 | Tab Bar + FAB |
| iPadOS | 26.2 | 3-Panel Sidebar |
| macOS | 26.2 | Icon Rail + Sidebar |
| visionOS | 26.2 | 3-Panel Sidebar |
| watchOS | 26.2 | Next-Event + List |
- Xcode 26.3 or later
- macOS 26.2 or later
- Apple Developer account (for device testing & EventKit entitlements)
# Clone the repository
git clone https://github.com/SwetabhSingh17/Anima.git
cd Anima
# Open in Xcode
open Anima.xcodeproj- Select a target device (iPhone, iPad, Mac, or visionOS Simulator).
- Press
⌘Rto build and run. - Grant Calendar access when prompted to enable EventKit sync.
| Permission | Purpose |
|---|---|
| Calendar (Full) | Read events from all linked calendar accounts |
Zero external dependencies — Anima is built entirely with Apple's first-party frameworks:
SwiftUIEventKitWidgetKit
Contributions are welcome! Please open an issue or submit a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.
Swetabh Singh
GitHub · Built with ❤️ using SwiftUI