Screenshot of this changelog

Performance and Reliability

The superior Cron UI and UX are enabled by a rock-solid core engineered for calendar performance and reliability. This summer, we’ve invested in improving three areas of Cron’s core:

  1. Performance of the right-hand context panel
  2. Reliability of complex repeat events
  3. Coverage of time zone math edge cases

Context panel performance

For accounts with thousands of contacts, typing into fields in the right-hand context is now over 10x faster. Keyboard entry could, in certain scenarios, take up to 200ms, which would feel sluggish. This is now down to 16ms per keystroke. We’ve stress-tested this by synthesizing tens of thousands of contacts, events, etc.

These performance improvements will also make grid selections more responsive. As always, if you feel an interaction within Cron isn’t super fast, let us know.

Repeat event reliability

Repeat events can create complex scenarios, especially when combined with participants, time zones, and one-off changes to the series. Many calendaring applications — even the most widely used in the market — reach their limits in these scenarios. This manifests for users through subtle data loss and scheduling errors, not so with Cron.

We have also fixed some bugs in this area of our own:

  • Enables deleting repeat series when selecting first instance and option “This and following events”.
  • Enables coloring getting picked up by repeat event series.
  • Prevents repeat event dialog prompting when creating a new repeat meeting.
  • Prevents duplicate event instances in various scenarios when a series has one-off edits.
  • Fixes “Discard event” only discarding repeat event series but not original meeting.
  • Fixes “Discard changes” not working for certain instances of a repeat series.

Time zone math

Programming time, dates, and time zones is challenging (Just use UTC!) and requires a tremendous amount of attention to get all details right. As a result, Cron’s core is engineered on top of powerful libraries such as date-fns, date-fns-tz, and Intl. While these libraries provide utility functions, a calendar requires quite a bit more.

We’ve hardened our backing store for events to fix subtle symptoms related to time zone math, mainly when occurring around UTC midnight.

  • Fixes wrong event layout when changing system time zone.
  • Fixes wrong time displayed in menu bar app when changing time zones.
  • Fixes date picker off-by-one-day when the set time zone isn’t the primary time zone, and the event crosses a midnight boundary.
  • Fixes upcoming events at certain times not showing in the context panel or menu bar calendar.
  • Fixes event keyboard navigation with N and B (or shift N) skipping over events.
  • Fixes changing the end day for an all-day event from the date picker.

Other improvements

  • Fixes “New version available” toast not showing immediately in some instances.
  • Fixes reminder notifications in rare circumstances not showing or showing twice.