GSoc/2023/StatusReports/VanshK

From KDE Community Wiki

Merkuro: Free/Busy

Merkuro (formerly Kalendar) in its current form cannot be used for meeting management due to the lack of the ability to send calendar invitations to attendees or respond to incoming invitations. The first step towards this, which is the goal of this project, is adding support for users to share their free/busy period information and view that of others to help them pick meeting slots that work for everyone. Additionally, this project creates a skeleton UI (requires further development and polish) for displaying the Free/Busy info to make it useful to the meeting organizer.

Mentors

Carl Schwan, Claudio Cambra

Merge Requests

Blog Posts

Summary of the work done

I planned to write this as a timeline, but because A - I concentrated most of this work to a span of around 4-6 weeks instead of doing it slowly across 12 weeks, and B - the chronology of the work was a little haphazard, I'll just enlist the work instead :P

The main contribution of this project is to enable Merkuro users to share their Free/Busy information and retrieve that of others right from within the application. With these settings available and the free/busy information exposed to the app, a UI can be built within the "new event" page (I've built a framework for the UI, but it needs hooking up to the free/busy info) that helps users pick a time slot convenient to all attendees/invitees when they schedule a meeting.

Looking closer

The first step for me was to choose how a user might configure their free/busy settings. For this, I chose the menubar, adding the entry "configure schedule". Part of the reason for this was that any related settings to be added later (such as RFC 7945 - Calendar Availability, also being taken as a GSoC '23 project) could be housed within the Schedule Configuration page.

After this, following a few tweaks to Akondai-Calendar to make Free/Busy settings accessible directly from QML, I was able to add these settings for publishing and retrieving Free/Busy info:

Since we hope for these options to be useful while planning an event, there's a "View availability" button to open another page meant to show the participants' availability in a grid format to make it easier to spot overlaps.

Small note here - for some reason, I kept getting sync issues I could not resolve on my build of Merkuro on this device, so I could not extensively test the "View Availability" popup. My client failed to load the incoming free/busy info, due to which the page (devoid of the information to be shown) remains blank and I cannot test any changes to the UI. Hopefully someone can take a look at it and build on top of it in the near future :)

Beyond GSoC

Unfortunately I'll be busy with college and research for a couple of months, so I can't immediately continue working on Merkuro, but towards the end of the year, I'll try to polish the Free/Busy UI and if time permits, try to implement more useful features like Calendar Invitations within Merkuro.

Contact

If you'd like to reach out, feel free to do so at @vkohli17:matrix.org :D