Skip to content

BaeTab/windows_widget_calendar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ—“οΈ Glasscal

A glassmorphism desktop calendar widget for Windows β€” frameless, translucent, and always at your fingertips.

Platform .NET WPF License

Glasscal lives quietly on your desktop as a Win11-style acrylic glass widget. Click a date to see your day, double-click to add an event, and let toast reminders keep you on schedule.


πŸ“Έ Screenshots

Month view Day detail (with lunar date)
Glasscal month view Glasscal day detail
Frameless acrylic calendar with today highlighted, weekend & holiday coloring, and per-day event dots. Select a day to expand its schedule β€” showing the lunar date (음λ ₯) and any events.

βš™οΈ Settings live in the right-click menu: always-on-top, transparency, accent color, run at startup, and update checks.


✨ Features

πŸ“… Calendar & Events

  • Mini month view with smooth slide animations and mouse-wheel month navigation
  • Event management β€” create, edit, and delete events with title, notes, time, and color labels
  • Recurring events β€” daily / weekly / monthly / yearly with custom intervals and end dates
  • Multi-day events rendered across every day they span
  • Toast reminders via native Windows notifications, scheduled ahead of each event

πŸ‡°πŸ‡· Korean Calendar Intelligence

  • Public holidays computed locally β€” solar holidays, lunar holidays (Seollal, Chuseok, Buddha's Birthday), and substitute-holiday rules, no network required
  • Lunar date display (음λ ₯) for the selected day, powered by KoreanLunisolarCalendar

🎨 Glass Design

  • Win11 system Acrylic backdrop with graceful fallback for older builds
  • 6 accent color themes β€” Blue, Violet, Rose, Coral, Emerald, Graphite β€” switchable live from the context menu
  • Adjustable transparency down to fully invisible (the widget backdrop switches off automatically)
  • Holiday-aware day cells with tooltips showing the holiday name

βš™οΈ Desktop Integration

  • System tray β€” left-click to toggle the widget, right-click for quick actions
  • Global hotkey β€” Ctrl+Shift+C opens quick-add from anywhere
  • Run at Windows startup β€” one toggle in the context menu (HKCU, no admin rights needed)
  • Always on top, remembered position/size, and multi-monitor clamping

πŸš€ Getting Started

Download

Grab the latest build from Releases:

Asset Runtime Size
Glasscal-vX.Y.Z-win-x64.zip Self-contained β€” nothing to install larger
Glasscal-vX.Y.Z-win-x64-framework-dependent.zip Requires .NET 8 Desktop Runtime smaller

Unzip anywhere and run Glasscal.exe. πŸŽ‰

Build from Source

git clone https://github.com/BaeTab/windows_widget_calendar.git
cd windows_widget_calendar
dotnet build widget_calendar.sln -c Release

Requirements: Windows 10 1809+ (Win11 recommended for the full acrylic experience), .NET 8 SDK.


πŸ•ΉοΈ Usage

Action How
Move the widget Drag anywhere on the glass
Select a day Click a date β€” the day panel expands below
Add an event Header + button, day panel +, double-click a date, or Ctrl+Shift+C
Change month Chevrons, mouse wheel over the calendar
Accent color / transparency / always-on-top / autostart Right-click the widget
Hide / show Tray icon left-click

πŸ—οΈ Architecture

widget_calendar/
β”œβ”€β”€ Models/        # CalendarEvent, RecurrenceRule, WidgetState
β”œβ”€β”€ Services/      # EventRepository (LiteDB), ReminderScheduler, ToastService,
β”‚                  # TrayService, HotkeyService, HolidayService, ThemeService, StartupService
β”œβ”€β”€ ViewModels/    # MVVM (CommunityToolkit.Mvvm source generators)
β”œβ”€β”€ Views/         # WidgetWindow, EventEditorWindow, MiniMonthView, DayEventList
β”œβ”€β”€ Styles/        # Design tokens β€” Colors, Typography, Icons, GlassWindow
└── Utils/         # AcrylicHelper (DWM backdrop), MonitorHelper, converters
  • Storage: LiteDB single-file database at %LOCALAPPDATA%\Glasscal\glasscal.db
  • Logging: Serilog rolling files at %LOCALAPPDATA%\Glasscal\logs\
  • Time model: all comparisons in UTC, all display in local time

πŸ”„ CI/CD

Every push to main runs the release workflow:

  1. πŸ§ͺ Build verification
  2. πŸ“¦ Publish self-contained & framework-dependent win-x64 binaries
  3. 🏷️ Auto-tag v{Version} from the .csproj and publish a GitHub Release β€” only when the version is new

To ship a release: bump <Version> in widget_calendar/widget_calendar.csproj and push. That's it. βœ…


πŸ”” Auto-Update

Glasscal keeps itself current straight from GitHub Releases β€” no store, no installer service.

  • πŸ›°οΈ On launch, it quietly asks the GitHub API for the latest release and compares it to the running version.
  • ✨ When a newer version exists, a slim banner appears at the top of the widget: "μ—…λ°μ΄νŠΈ v1.3.0 μ„€μΉ˜".
  • πŸ–±οΈ One click downloads the self-contained zip, verifies its SHA-256 against the release's SHA256SUMS.txt, swaps the files, and relaunches β€” all in place.
  • πŸ”• Prefer manual control? Toggle "μ‹€ν–‰ μ‹œ μ—…λ°μ΄νŠΈ 확인" off in the right-click menu, and use "μ§€κΈˆ μ—…λ°μ΄νŠΈ 확인" whenever you like.

Because the check runs against your existing zip release assets, publishing an update is still just a version bump + push. πŸš€


πŸ“„ License

MIT Β© BaeTab

About

πŸ—“οΈ A glassmorphism desktop calendar widget for Windows β€” acrylic glass UI, Korean holidays & lunar dates, reminders, global hotkey, and GitHub-based auto-update.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages