Skip to content

Ghost 3.4.6

Choose a tag to compare

@ryuhemingway ryuhemingway released this 04 Sep 16:42
· 16 commits to c2537221587695d903f23ebb388d9bbb59916fcd since this release

Naming a Google calendar works whichever way round you say it.

3.4.3 read the calendar name only when it came before the word "calendar". Ask for "google calendar JM" and Ghost went looking for a calendar called "google", found none, and let the event fall through to the default, which is the exact misfiling 3.4.3 set out to stop. Ghost now reads the name on either side of the word, and a calendar it cannot find is reported along with the ones you do have instead of being quietly swapped for the default.

The calendar name is read on either side of the word

"Add a meeting to google calendar JM today at 10am" now creates the event in JM, understanding the word before "calendar" as the account it lives in. "In my JM calendar" works as it did, and if the account name happens to be a calendar name too, Ghost tries both and uses whichever one you actually have.

Calendar names with punctuation, symbols or emoji are read

A title Ghost could not spell out was worse than one it read wrongly, because it then looked like no calendar had been asked for at all and the event went to the default quietly. "Work (Team)", "Ryu | Personal", "📅 Work", "2026 Planning", "On Call" and calendars called "Main" or "Shared" all resolve now. Of 78 combinations of title and phrasing, 26 used to fail and 14 of those failed silently.

"calendar: JM" works mid sentence

The written form only ever worked at the very end of a request. Anywhere else Ghost read the rest of the sentence as part of the name, so "calendar: JM today at 10am" asked for a calendar called "JM today at 10am" and of course did not find one.

Fixed: a calendar Ghost could not find became the default

A name that did not match was quietly handed to the model to sort out, and what it did instead was drop the name, use the default calendar and report success. Ghost now stops and lists the calendars it can write to.


Build 30406. Notarized, stapled, Gatekeeper accepted. Existing installs update automatically through Sparkle.

Version 3.4.5 was built but never published, so it exists for nobody.