Skip to content

sethraj14/ticker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

119 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ticker Logo

Ticker

Your meetings, always in sight.

A native macOS menu bar calendar — live countdown, one-click join, full event management.
Free forever. Pro for power users ($4.99 one-time, no subscription).

Download Website

macOS 13+ Swift 5.9 SwiftUI MIT License Stars Downloads


Why Ticker?

Fantastical Dato Meeter Ticker
Price $6.99/mo ($84/yr) $4.99 $5.99 Free (Pro: $4.99 once)
Day timeline Yes No No Yes
Create events Yes No No Yes (Pro)
Drag to create/resize Yes No No Yes (Pro)
NLP quick-add Yes No No Yes (Pro)
One-click join Yes No Yes Yes
RSVP from menu bar No No No Yes (Pro)
Open source No No No Yes
Native SwiftUI No (AppKit) Yes No Yes

Install

Download (recommended)

  1. Download Ticker.dmg from Releases
  2. Open the DMG, drag Ticker to Applications
  3. Launch Ticker from Applications
  4. First launch: Right-click Ticker.app → Open → Open (macOS Gatekeeper — one time only)
  5. Sign in with Google when prompted

Build from source

git clone https://github.com/sethraj14/ticker.git
cd ticker

# Set up Google OAuth credentials
cp Ticker/Config.xcconfig.example Ticker/Config.xcconfig
# Edit Config.xcconfig with your client ID and secret

# Generate Xcode project and build
brew install xcodegen
xcodegen generate
./scripts/build-dmg.sh

How It Works

Menu Bar:  "Standup in 23m"  →  "Standup in 45s"  →  "Standup NOW"
                                    |
                              [click menu bar]
                                    |
                    +-----------------------------------+
                    |   < Today, Mar 15  >              |
                    |-----------------------------------|
                    |   Rama Navami              All day |
                    |-----------------------------------|
                    |   9 AM +------------------+       |
                    |        | Team Standup  >   |       |
                    |  10 AM +------------------+       |
                    |        ----- now --------         |
                    |  11 AM +------------------+       |
                    |        | Design Review >  |       |
                    |  12 PM +------------------+       |
                    |-----------------------------------|
                    |  > UP NEXT                        |
                    |  Design Review - 11 AM    [Join]  |
                    +-----------------------------------+

Free vs Pro

Free (forever)

  • Live countdown timer in menu bar
  • One-click meeting join (Meet, Zoom, Teams)
  • Google Calendar day timeline with color-coded events
  • Event details and attendee list
  • All-day event banner

Pro ($4.99 one-time)

  • Create, edit, and delete events
  • NLP quick-add ("Standup 3pm 45m")
  • Click or drag to create on timeline
  • Drag to resize and move events
  • RSVP — one-tap badge, expand to respond
  • Guest management with autocomplete
  • Multiple Google accounts
  • Apple Calendar sync
  • Day navigation (past/future)
  • Smart notifications with configurable reminders
  • Per-feature toggles in Settings

No subscription. Pay once, own it forever.


Features

Live Countdown

Your next meeting + countdown in the menu bar. Per-second ticking under 60s. Calendar icon when your day is clear.

Day Timeline

Google Calendar-style vertical timeline. Events sized by duration, color-coded by calendar, overlapping columns for conflicts. Red "now" line.

One-Click Join

Google Meet, Zoom, Teams — tap the meeting, click Join. No hunting for links.

Create Events (Pro)

Click any empty slot. Or type "Team standup 3pm 45m" — NLP parses it. Drag on timeline to set duration visually.

Drag to Resize & Move (Pro)

Drag the bottom edge to resize. Grab the color bar to move. 60fps, snaps to 15-min grid.

RSVP (Pro)

Compact badge shows your status. Tap to expand and respond Going/Maybe/No. Collapses after selection.

Per-Feature Toggles (Pro)

Every Pro feature has its own switch in Settings. Keep what you use, disable what you don't.


Architecture

Ticker/
├── TickerApp.swift              # MenuBarExtra entry point
├── ViewModels/
│   └── CalendarViewModel.swift  # State, timers, caching, fetch
├── Services/
│   ├── GoogleCalendarService    # OAuth + Calendar API
│   ├── EventKitService          # Apple Calendar via EventKit
│   ├── NotificationService      # Scheduled notifications
│   ├── LicenseManager           # LemonSqueezy license validation
│   └── LoopbackHTTPServer       # OAuth callback server
├── Models/
│   ├── CalendarEvent            # Unified event model
│   ├── FeatureFlags             # Per-feature Pro toggles
│   └── GoogleAccount            # Multi-account support
├── Views/
│   ├── PopoverView              # Main container
│   ├── DayTimelineView          # 24h scrollable timeline
│   ├── DraggableEventBlock      # Resize + move gestures
│   ├── MeetingBlockView         # Color-coded event blocks
│   ├── JoinSection              # "Up Next" with RSVP badge
│   ├── CreateEventView          # NLP + manual event creation
│   ├── DayNavigationBar         # Date nav with Pro gate
│   └── SettingsView             # Accounts, features, license
└── Helpers/
    └── KeychainHelper           # Token storage
Decision Why
SwiftUI + MenuBarExtra Native macOS 13+ API, smallest binary
Custom Layout for timeline Pixel-perfect grid alignment
No dock icon Pure utility — LSUIElement = true
XcodeGen Reproducible builds, no .xcodeproj conflicts
LemonSqueezy One-time purchase, no subscription infra needed
Per-feature flags Pro users control exactly what's active

Roadmap

  • Multiple Google accounts
  • Apple Calendar integration
  • Create, edit, delete events
  • NLP quick-add
  • Drag to create, resize, move
  • RSVP from menu bar
  • Guest management
  • Smart notifications
  • Per-feature toggles
  • Light/dark theme on landing page
  • Custom app icon
  • Calendar selection (show/hide)
  • Keyboard shortcuts
  • Homebrew cask
  • Week view
  • Auto-update (Sparkle)

Contributing

See CONTRIBUTING.md for setup instructions and guidelines.

Fork, branch (feat/your-feature), commit (conventional commits), PR.


gettickerapp.com

Built by Rajdeep Gupta. Because checking your calendar shouldn't require opening a browser.

About

Ticker — macOS menu bar calendar with meeting countdown, day view, and join notifications

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors