Itsycal: what it does and where it breaks down

Itsycal installs with one Homebrew command: brew install --cask itsycal. It is a free, open source menu bar calendar from the developer Mowglii, and the cask puts Itsycal.app in the Applications folder. What the one-liner does not say is which version arrives, how updates work afterward, and what to set up on first launch so that the calendar shows anything at all. Those three details decide whether the install feels finished or half done.

This guide covers the Homebrew install and its version gap, the first-run setup in the order that works, the settings worth changing, a clean uninstall, and the point at which a menu bar calendar stops being enough. Versions and counts were checked against the Homebrew API, the Mowglii site, and the GitHub repository on October 18, 2026.

What the Homebrew cask installs, and the version gap

The itsycal cask page on formulae.brew.sh describes the app as a "Menu bar calendar" with its homepage at mowglii.com. On October 18, 2026 the cask listed version 0.15.14, downloaded from the developer's own storage as Itsycal-0.15.14.zip. The same API data showed 656 installs through Homebrew in the last 30 days and 10,855 in the last year.

The developer's version history page lists newer builds than the cask:

Build macOS required Where it comes from
0.27.3 (latest) macOS 27 or later Mowglii download only
0.15.15 macOS 11 or later Mowglii download, or in-app update
0.15.14 macOS 11 or later Homebrew cask on October 18, 2026
0.14.1 macOS 10.14 or later Older Mowglii download

The 0.27 line was rebuilt to "look more at home on macOS 27", in the developer's words, and 0.27.3 works around a macOS 27 date formatter bug. Version 0.15.15 added one change many people want: if Itsycal is hidden by a menu bar manager like Ice, or pushed off by a long app menu, the keyboard shortcut now shows it in the upper right of the screen.

So a Homebrew install today lands one or more versions behind. On macOS 26 and earlier the gap is small. On macOS 27, the in-app updater or the direct download is the way to get the build meant for that system.

Why brew upgrade skips Itsycal

The cask is marked auto_updates true. The Cask Cookbook explains that this stanza asserts the app updates itself, which fits Itsycal because it ships a working Check for Updates through the Sparkle framework, as the Mowglii home page notes.

The consequence is in the brew manual. A plain brew upgrade skips casks marked auto_updates. To include them, run:

  • brew upgrade --greedy-auto-updates to include auto-updating casks only
  • brew upgrade --greedy to include those and casks with version :latest
  • or set HOMEBREW_UPGRADE_GREEDY in the shell profile to make greedy the default

There is a practical choice to make here. If Itsycal updates itself through Sparkle, Homebrew's record of the installed version can fall behind the real app, and brew list --versions will show an old number. That is harmless. People who manage every app through a Brewfile and want Homebrew to stay in charge should turn off automatic updates inside Itsycal and use the greedy flag instead. Mixing both is what produces confusing version numbers.

First launch: getting events to show

Itsycal has no account system of its own. It reads only the calendars already set up in the Mac Calendar app. The Itsycal help page puts it plainly: to display events, open the Settings panel, choose the General tab, and put a checkmark next to the calendars to track.

The order that avoids an empty agenda:

  1. Add the accounts to the Mac first. Google, iCloud, and Exchange accounts go in System Settings, Internet Accounts. Itsycal will see nothing that the Calendar app cannot see.
  2. Launch Itsycal and allow calendar access when macOS asks. Without that permission the event list stays blank.
  3. Open Settings. Click the gear icon below the month grid and choose Settings, or press Command and comma.
  4. Tick the calendars under General. Leave holiday and birthday calendars unticked if the agenda gets crowded.
  5. Set the keyboard shortcut in the box under Keyboard shortcut, also on the General tab.

Two details on the same help page save time. New events go to the default calendar chosen in the Calendar app's own General settings, because Itsycal honors that choice rather than keeping its own. And delegate calendars cannot be shown directly. For Google, the workaround is to tick the delegate calendars on Google's sync settings page, after which they appear as normal calendars in the Mac Calendar app and therefore in Itsycal.

If the icon does not appear at all, the help page names two causes. On a Mac with a notch, a full menu bar silently hides new items. On macOS 26 Tahoe or later, the Menu Bar panel in System Settings has to allow Itsycal to be shown.

Settings worth changing

Most of Itsycal's appeal is in a handful of options on the Appearance tab and the keyboard.

Replace the system clock. The menu bar customization page explains that Itsycal can show text next to its icon, rendered in the same font as the system clock, from a datetime pattern. A pattern like E MMM d h:mm a gives a line such as "Thu Mar 18 11:12 AM", and the icon can then be hidden so only the text shows. The date and time patterns page lists the characters.

Week numbers. Itsycal uses ISO 8601 week numbers in the grid. The menu bar text is drawn by macOS, which does not follow ISO by default, so the two can disagree. The help page gives the fix: in System Settings, Language and Region, change the calendar from Gregorian to ISO 8601.

Keyboard control. The shortcut list on the help page is long. A few that matter daily:

  • Command N creates an event, using the Calendar app's default duration since version 0.15.11
  • Command J opens the first active virtual meeting in the agenda
  • Shift Command T jumps to a date
  • P pins the window so it stays open while working in another app
  • Option Command R refreshes events

Meeting detection covers Zoom, Teams, FaceTime, Chime, jit.si, and others, according to the version history. By default the meeting button turns on 15 minutes before the start time.

Hidden settings and scripting hooks

Several options never appear in the Settings panel. The developer publishes them in the version history as Terminal commands, which suits anyone who already installs apps from the command line.

Meeting buttons that stay on. By default, a meeting's join button switches on 15 minutes before the start time and off at the end. Version 0.13.3 added a preference, set with defaults write com.mowglii.ItsycalApp EnableMeetingButtonIndefinitely -bool YES, that keeps the button on indefinitely once it has turned on. The version history gives the example of a standing meeting room that people revisit.

A meeting indicator in the menu bar. An experimental option from version 0.13.2, defaults write com.mowglii.ItsycalApp ShowMeetingIndicator -bool YES, shows a small sign in the menu bar while a virtual meeting is active.

Menu icons on macOS 26. Version 0.15.11 turned off what the developer called distracting menu icons on macOS 26 Tahoe. They can be brought back with defaults write com.mowglii.Itsycalapp EnableTahoeMenuIcons -bool YES.

A URL scheme. The help page documents itsycal://date/ followed by a date in yyyy-MM-dd format, or the word now for today. That makes it possible to open Itsycal at a given day from a Shortcuts action, a Raycast script, or a link in a notes app.

A custom hourly chime. With "Beep beep on the hour" ticked under General, a file named beep.mp3 placed in the app's Application Support folder plays instead of the default sound.

Quitting and reopening Itsycal after a change is the safe way to make sure the new value is read. To undo one, run the same command with defaults delete and the key name instead.

Itsycal has been a Universal app since version 0.13.0, so the same download runs natively on Apple silicon and Intel Macs, and the Homebrew cask does not need a separate build for either.

Removing Itsycal cleanly

brew uninstall --cask itsycal quits the app and removes Itsycal.app. Settings stay behind. The cask's zap stanza lists two files: the preferences file ~/Library/Preferences/com.mowglii.ItsycalApp.plist and the folder ~/Library/HTTPStorages/com.mowglii.ItsycalApp.

To remove those too, use brew uninstall --zap --cask itsycal. The brew manual describes the zap option as removing all files associated with a cask, with a warning that it may remove files shared between applications. For Itsycal, the listed paths are specific to the app, so the warning is mostly theoretical.

One folder is not in the zap list. If a custom beep.mp3 was added, it sits in ~/Library/Application Support/com.mowglii.ItsycalApp, which the help page names but the cask does not remove. Delete that folder by hand after zapping if a fully clean Mac is the goal.

Removing Itsycal does not touch any events. They live in Google, iCloud, or Exchange, and the Mac Calendar app keeps showing them.

Where a menu bar calendar stops

Itsycal does one job, and the limits come from that design rather than from missing effort. The GitHub repository sfsam/Itsycal is MIT licensed, has about 4,000 stars, and the release history runs back to versions for OS X 10.8. It is a mature tool, and it is also deliberately small.

What it does not do:

  • No direct Google connection. Everything goes through the Mac Calendar app, so any Google calendar has to be added to macOS first, and delegate calendars need the workaround described above.
  • Only the Gregorian calendar. The help page states other calendars, such as Buddhist, will show wrong dates.
  • No travel time or scheduling. There is no booking link, no buffer before in-person meetings, and no check for double bookings when creating an event.
  • No full window. The view tops out at two months in the popover. Planning a week across several calendars still means opening something larger.

For people who mostly need a glance at today and a join button, these limits never come up. They start to matter when the calendar fills with meetings in different places, or when other people need to book time.

The step up is usually a full desktop calendar that keeps a menu bar panel. One native Mac calendar connects to Google accounts directly and adds measured travel blocks and booking pages, as listed on its Features page. The differences across apps, including free menu bar tools like Itsycal, are set out in Compared with other calendars.

What to change first

Install with brew install --cask itsycal, then decide who owns updates: Sparkle inside the app, or brew upgrade --greedy-auto-updates. Tick the calendars under Settings, General, and set a shortcut. If the schedule outgrows a popover, Caltimate is one desktop calendar that keeps a menu bar view while adding a full window.

Frequently asked questions

Is there a Homebrew formula for Itsycal, or only a cask?

Only a cask. Itsycal is a graphical app, so it is installed with brew install --cask itsycal. On October 18, 2026 the cask listed version 0.15.14, while the developer's site offered 0.15.15 for macOS 11 and later and 0.27.3 for macOS 27.

Why does brew upgrade not update Itsycal?

The cask is marked auto_updates, because Itsycal updates itself through Sparkle. Homebrew skips such casks during a normal upgrade. Running brew upgrade --greedy-auto-updates, or brew upgrade --greedy, includes it.

Can Itsycal show Google Calendar without the Mac Calendar app?

No. Itsycal reads only the calendars that are set up in the Mac Calendar app. Add the Google account under System Settings, Internet Accounts, then tick its calendars in Itsycal's Settings, General tab.

Why is Itsycal missing from the menu bar after installing?

The Itsycal help page names two common causes. On a Mac with a notch, macOS hides new menu bar items when there is no room. On macOS 26 Tahoe or later, check that the Menu Bar panel in System Settings allows Itsycal to be shown.

Does Itsycal cost anything?

No. Itsycal is free to download from Mowglii and through Homebrew, and its source code is published on GitHub under the MIT license.

Back to all posts