Happy holidays! Kalendar v0.4.0 is our gift, and it brings new views, improved performance, and many many bugfixes – Kalendar devlog 24

I know it has been a while since our last update, but I can assure you that we have not been twiddling our thumbs! For the holiday season, we are happy to bring a new release of Kalendar, which we have worked hard on to bring new features, better performance, and a bunch of bugfixes that should make Kalendar better than ever on those of you with shiny new machines. This release should land over the newt couple of days.

Happy holidays!

Note: Kalendar is still under heavy development. You’re free to poke around and try it out, but it is not yet final software! If you want to contribute to its development, join us in Kalendar’s Matrix room.

Our 0.4.0 release

We are excited to have you try Kalendar, and we want your feedback — especially bug reports! These will help us improve Kalendar as much as possible before releasing 1.0.

It is now in the hands of distribution packagers to add Kalendar to their repositories. The most up-to-date and unstable version of Kalendar will continue to come from our git repository, and some users have gone ahead and started packaging builds of Kalendar coming straight from our master branch.

Git builds:

Stable versions are now also available on a number of distributions, such as Alpine, Fedora, Neon User, Manjaro, and NixOS!

We hope you enjoy using Kalendar as much as we enjoy making it, and look forward to what you have to tell us about it!

Now, here’s what’s new this week:

Three-day and single-day views

Add single-day and three-day views to Kalendar (Claudio Cambra)

0.4.0 brings two new views: the three-day and single-day views. These are based on the week view, presenting events and tasks according to their times. These new views should make it much easier to check your calendars when the window is width-constrained, or when you have lots of overlapping events.

The three-day view therefore replaces the week view on mobile. The week view was borderline unusable on mobile, and the three-day view makes for a much more usable calendar view.

The day view is also accessible as an overlay across all of Kalendar’s views, on both desktop and mobile. Clicking on the day header, in the month, week, and three-day views brings up the day view for that specific day.

For those of you with very busy schedules, this should make Kalendar a lot more legible.

Drag-drop calendar changing

Add drag/drop for tasks to change collections (Claudio Cambra)

Also new in 0.4.0 is a new thing you can drag and drop: you can drag tasks from the tasks view onto a calendar in the sidebar and quickly change a task’s calendar. This change was inspired by one of elementaryOS’ new features, so credit where credit is due — it’s a great idea!

We are working to extend this new feature to other views for the next release.

Making Kalendar faster than ever

Fixed massive freezing caused by changing date on week view (Claudio Cambra)
Background load for month view no longer async, accelerating startup significantly (Claudio Cambra)
Also load incidence delegates in month view async (Claudio Cambra)
Lazy load date change drawer (Claudio Cambra)
Change root MultiDayIncidenceDelegate component from Rectangle to Item, as Rectangle is unnecessary (Claudio Cambra)

This past week I finally received my Pinephone Pro, and was immediately disappointed to find that Kalendar was still somewhat sluggish on the device. Over the new year, we will be making sure to continue refining and optimising Kalendar to make it as smooth as we can on the device.

We have already began this work. Beginning with the week view, changing the view’s date to far-flung dates should no longer cause Kalendar to freeze while it pointlessly processes new dates. This should make navigation significantly faster.

We have also tweaked what components are loaded synchronously and which ones are loaded asynchronously. This tuning should help Kalendar more quickly load what you need, while loading things that you may not need in the background. Overall, this should make the app feel smoother and faster.

Lastly, we have made the component for incidence items in the month view slightly lighter, which should slightly improve loading times and general smoothness.

Usability improvements

Keep current time position when changing week (Slawek Kaplonski)
Added escape handling to remaining dialog windows (Claudio Cambra)
Tasks view now always shows date string according to system locale (Claudio Cambra)
Kalendar now gets raised to front when new instance is attempted to be opened (Claudio Cambra)

A nice new change in the week, three-day and day views is that your scroll position is conserved across the different weeks/three-day/day intervals. This should save you from having to always scroll to the times that you are interested in viewing in these views. Thanks, Slawek!

We have also ensured that now every dialog window in Kalendar can be closed with the escape key. Those of you on very up-to-date distributions (e.g. Neon user, Arch, openSUSE Tumbleweed, etc.) will have likely already experienced this change thanks to changes upstream, but changes within Kalendar should ensure that the escape key closes dialog windows regardless of the system’s Kirigami version.

The tasks view now also shows the date always according to your system locale, which should save you from being confused by the formatting of the dates shown here.

Lastly, trying to start a new instance of Kalendar when the application is already open will bring the Kalendar window to the front of your desktop!

Big improvements to the alarm notifier client

Fold NotificationHandler into KalendarAlarmClient (Volker Krause)
Create notifications from full incidence objects (Volker Krause)
Update active alarms if we get an earlier one for the same event (Volker Krause)
Create KNotification instances on demand (Volker Krause)
Unify handling of active and suspended notifications (Volker Krause)
Remove the alarm daemon systray entry (Volker Krause)
Store active alarm information whenever they change (Volker Krause)
Simplify incidence access in dumpAlarm() (Volker Krause)
Remove unused notification context (Volker Krause)
Remove unused D-Bus interface of the alarm daemon (Volker Krause)
Use Alarm::parentUid instead of the ETM specific custom property hack (Volker Krause)
Align the alarm timer to the next minute (Volker Krause)

Thanks to Volker, Kalendar’s notifier daemon has acquired some big technical improvements. Eventually, this daemon will be used by both Kalendar and KOrganizer, so these changes will eventually benefit KOrganizer users too!

The first improvement is that the daemon is much smaller and more efficient. Volker has reduced the amount of code that the notifier daemon uses while retaining the same functionality, making the daemon smaller and easier to maintain.

Additionally, the alarm client is now more reliable. For example, suspended notifications are now triggered immediately after a restart but at the correct time; active notifications that haven’t been dismissed are now also restored.

The notification daemon now also checks for alarms according to the stored alarm times, rather than polling every minute for active alarms. This is significantly more efficient (which should help save your battery!) and also more reliable across restarts.

We have also removed the system tray entry. We found that there were enough usecases to justify its retention. For one, the system tray is inaccessible on Plasma Mobile and on GNOME, making the tray icon unusable. Even on Plasma, we found that there were many reasons to use it; since we use KNotifications, we can simply use Plasma’s Do Not Disturb mode to hide notifications, and we found the use-case of turning off the daemon rare enough that it didn’t make much sense to keep around.

Lastly, the alarm daemon’s notifications now have full access to incidence data. This should allow us to add more contextual actions, extra relevant information, and more in the future.

Massive thanks to Volker for these improvements! 🙂

Other bug-fixes and small changes

Supporting us

Is there anything you’d like to see added to Kalendar? Get in touch! I’m @clau-cambra:kde.org on Matrix.

If you want to support Kalendar’s development, I strongly encourage you to donate to the KDE community. These donations help us keep our infrastructure running, including our GitLab instance, our websites, and more. You can donate at https://kde.org/community/donations/.

If you are already a KDE supporter and want to support Kalendar development directly, you can donate to:

  • Claudio Cambra (Kalendar maintainer and… oh, that’s me! 👋) (Liberapay)

Kalendar v0.3.0 out soon, with improved stability, efficiency, accessibility… and a Windows version?? – Kalendar devlog 23

Over the past two weeks, we have been hard at work under the hood of Kalendar. What you can expect from these two weeks’ refactors, additions, and changes is a version of Kalendar that is more stable, faster to use, and easier to use than ever before.

Note: Kalendar is still under heavy development. You’re free to poke around and try it out, but it is not yet final software! If you want to contribute to its development, join us in Kalendar’s Matrix room.

Our 0.3.0 release

We are excited to have you try Kalendar, and we want your feedback — especially bug reports! These will help us improve Kalendar as much as possible before releasing 1.0.

It is now in the hands of distribution packagers to add Kalendar to their repositories. The most up-to-date and unstable version of Kalendar will continue to come from our git repository, and some users have gone ahead and started packaging builds of Kalendar coming straight from our master branch.

We hope you enjoy using Kalendar as much as we enjoy making it, and look forward to what you have to tell us about it!

Now, here’s what’s new this week:

Making Kalendar faster to use

Improve defaults (Claudio Cambra)
Double-clicking on incidence now opens up the editor (Claudio Cambra)
Added menu entries to refresh all calendars, including an F5 shortcut (Claudio Cambra)
Can now resize incidences in the week view by dragging on bottom edge (Claudio Cambra)
Kalendar now auto rounds new start dates for events to next nearest 15 mins (Claudio Cambra)
Kalendar now auto rounds new due dates for tasks to next nearest 15 mins (Claudio Cambra)

We’ve made several small tweaks and additions that should make Kalendar faster to use when you’re in a hurry.

Plasma’s motto has been ‘simple by default, powerful when needed’ for the past half-decade. Kalendar’s philosophy is the same, and this week we tweaked our default configuration to make the application as clean and simple as it needs to be. Concretely, we have changed the month view to not show week numbers by default, and for tasks to be arranged in ascending date order. This should save you from fiddling around with the settings!

Thanks to feedback from some of our users, we have now also made Kalendar much faster to interact with. In the last devlog, we explored the new drag-and-drop feature, and this week we are expanding on the week view’s speed by introducing event “resizing” directly from within the view. Clicking and dragging on the bottom edge of an event now lets you adjust its end time without having to open the editor window.

If you do need to edit an event in more detail, however, this is now a lot quicker too: you can just double-click on an incidence in any of Kalendar’s views to bring up the editor.

We have also added an action to immediately refresh all of your synchronised calendars if you need a remote change to be immediately reflected in Kalendar. A new “Refresh All Calendars” action can be found in Kalendar’s menus, and can also be quickly invoked by pressing F5.

Lastly, we are making setting the time for your new events and tasks easier: rather than simply setting the start or due times of these incidences to the current time, we are rounding them to the nearest upcoming 15-minute multiple. Hopefully this will save you from having to manually edit start, end and due times as much!

Visual improvements and tweaks

Made currently selected time more obvious with bolding in the time picker (Claudio Cambra)
Added rectangle to show clearly current time selected in time picker (Claudio Cambra)
Add list section headings to tasks view (Claudio Cambra)

It wouldn’t be a Kalendar update without some visual improvements!

We have paid some attention to the time picker, which was preciously not very clear on what time was being selected. We have added a background and bolding to the currently selected time in order to highlight it. This should make selecting and event’s time much clearer.

Additionally, we have also added some section headings to the tasks view. These section headings adapt according to what type of sorting you are using for your tasks (i.e. alphabetically, by date, or by priority) and clearly show the categories that your open tasks fall under.

Accessibility improvements throughout Kalendar

Improve accessibility of sidebar (Carl Schwan)
Improve color checkbox visual focus (Carl Schwan)
Fix keyboard navigation in TreeView (Carl Schwan)
Added a delete key shortcut to delete currently viewed incidence (Claudio Cambra)

Carl has merged some changes to Kalendar that should significantly improve keyboard-based navigation around the app. The sidebar is now much more responsive to keyboard navigation and allows you to interact with all of its elements without the mouse, including selected calendar’s checkboxes, view-switching buttons, and so on.

Similar changes have taken place to the tree-view that forms the basis of the tasks view. Whereas before this component was not really navigable by keyboard alone, this is no longer the case: the up and down arrow keys let you select the row, while the left and right arrow keys let you expand or collapse a rows with children.

Finally, there is also a new change that lets you delete the incidence you are currently viewing by pressing the Delete key, saving you from having to navigate through the UI.

Having said this: we still have a long way to go accessibility-wise throughout the rest of Kalendar, especially when it comes to its calendar views. If you have any experience in improving the accessibility of QML-based applications, or simply have feedback as to how we can help make Kalendar easier to use for more diverse audiences, don’t hesitate to get in contact with us!

Big bug-fixes

Fix drag and drop and resize behaviour for recurring incidences (Claudio Cambra)
Incidence wrapper is now an ItemMonitor, letting us update incidence info automatically when they change in calendars (Claudio Cambra)
Add an alarm client to Kalendar (Claudio Cambra)

While conventionally bug-fixes are listed at the bottom of these updates, some significant refactors have occurred over the past two weeks that should fix a variety of fairly problematic issues.

The first was drag and drop for recurring incidences. We have rewritten how drag and drop works, and it now works far more intuitively than it did before. Dragging and dropping a recurring event’s occurrence now prompts you to pick what you want to do, rather than just pushing forward all of your recurring incidences to the date you just dropped this incidence at. The choices lets you create an exception (or several exceptions) for a recurrence, letting you modify how your event is supposed to recur over time.

Additionally, we now properly handle time-zones in drag+drop, meaning you shouldn’t face a jarring issue where dropping an incidence in one place would immediately make it move elsewhere.

The class that handles presenting incidence’s data to the UI has also been modified. Changing an incidence in the editor, for example, will now cause these changes to be reflected in the incidence info drawer if it is also showing the data for said incidence. This should fix issues with an edited event now having these changes propagated throughout all of Kalendar.

Finally, we have added a big new component to Kalendar’s backend: an alarm client that runs in the background, providing notifications for upcoming reminders for your events. The alarm client starts in the background and remains running after you close Kalendar to ensure your reminders always reach you. This daemon lives in the system tray and provides you with a few options you can tweak to your liking.

Kalendar on Windows??

Thanks to Nicolas, we now have a running and working version of Kalendar on Windows! Thanks to the flexibility of Qt, the KFrameworks, and Akonadi, you can now download a version of Kalendar for Windows — though do note that we test mainly on Linux and that the Windows version is definitely more of an experiment than a final product. Still — if you’re tired of using the proprietary calendar app on Windows, give it a try!

kalendar.PNG

Other bug-fixes and small changes

Supporting us

Is there anything you’d like to see added to Kalendar? Get in touch! I’m @clau-cambra:kde.org on Matrix.

If you want to support Kalendar’s development, I strongly encourage you to donate to the KDE community. These donations help us keep our infrastructure running, including our GitLab instance, our websites, and more. You can donate at https://kde.org/community/donations/.

If you are already a KDE supporter and want to support Kalendar development directly, you can donate to:

  • Claudio Cambra (Kalendar maintainer and… oh, that’s me! 👋) (Liberapay)

Kalendar v0.2.0 is out now, adding drag-and-drop, improved calendar management, and lots of bug-fixes — Kalendar devlog 22

A week has passed since our first release and we are back with another one! We’ve worked hard to go through your bug reports and suggestions, and thanks to these we have a new version of Kalendar that is more stable and powerful than ever.

Note: Kalendar is still under heavy development. You’re free to poke around and try it out, but it is not yet final software! If you want to contribute to its development, join us in Kalendar’s Matrix room.

Our 0.2.0 release

While we are excited to have you try Kalendar, please not that 0.2.0 is still an in-development release and that there will be bugs and missing features. We want your feedback — especially bug reports! These will help us improve Kalendar as much as possible before releasing 1.0.

It is now in the hands of distribution packagers to add Kalendar to their repositories. The most up-to-date and unstable version of Kalendar will continue to come from our git repository, and some users have gone ahead and started packaging builds of Kalendar coming straight from our master branch.

We hope you enjoy using Kalendar as much as we enjoy making it, and look forward to what you have to tell us about it!

Now, here’s what’s new this week:

Drag-and-drop incidences to change their times

!147: Add drag and drop to change incidence start times (Claudio Cambra)
Commit 95b2a5f5: Dragged incidences now correctly return to where they were when dragged into non-droparea space (Claudio Cambra)

Another highly-requested feature has been added to Kalendar: you can now drag-and drop editable incidences in your views to change their times.

This feature has been added to all the calendar views. Both the month and schedule views let you drag and drop incidences onto different days and thus change the start date of your dragged incidence, while the week view offers more granularity by letting you set your incidence start time to the nearest quarter-hour.

Manage and customise your synchronised calendars

!148: Add menu with calendar editing options (Claudio Cambra)

image

We have also added a new context menu that you can invoke by right-clicking on your synchronised calendars in the sidebar. This context menu provides a number of new actions that let you easily manage your calendars straight from Kalendar.

  • ‘Edit calendar…’ invokes a properties dialog that lets you set an icon, name, and retrieval (sync) settings for this calendar
  • ‘Update calendar’ lets you immediately refresh the calendar and pull new changes from the calendar source
  • ‘Delete calendar’ is… self-explanatory
  • ‘Set calendar colour…’ lets you change the calendar’s colour without having to go into the settings

Usability tweaks and visual improvements

Commit 2a7db762: Can now press enter when delete dialog open to quickly delete (Claudio Cambra)
Commit ab0b5bd9: Completed tasks now have strikeout across views (Claudio Cambra)
Commit d06eed8f: Add number of tasks left to complete to filter header (Claudio Cambra)
Commit 53b7cfdd: Completion sliders now have highlight colour of parent collection (Claudio Cambra)

We’ve made some things faster and clearer.

Incidence deletion, for instance, now responds to the Escape and Return/Enter keys. So if you bring up the dialog to delete an incidence, you can rapidly dismiss it by either pressing Escape or quickly delete by pressing enter.

Regarding tasks: these are now more clearly marked as completed throughout calendar by appearing with strikethrough text across Kalendar’s calendar views.

In what is potentially an anxiety-inducing addition, we have also added the number of tasks to be completed to the tasks view’s header. This should let you know how much stuff you have left to do, which should help you panic a bit more!

Lastly, we have tweaked the completion sliders in tasks to have the same colour as the task’s parent calendar, helping the incidence info section feel less incongruent colour-wise.

Bug-fixes and small changes

Supporting us

Is there anything you’d like to see added to Kalendar? Get in touch! I’m @clau-cambra:kde.org on Matrix.

If you want to support Kalendar’s development, I strongly encourage you to donate to the KDE community. These donations help us keep our infrastructure running, including our GitLab instance, our websites, and more. You can donate at https://kde.org/community/donations/.

If you are already a KDE supporter and want to support Kalendar development directly, you can donate to:

  • Claudio Cambra (Kalendar maintainer and… oh, that’s me! 👋) (Liberapay)