[GSoC 22] Project: Improving the Calendar Application

Just my last comment on the remaining points in the proposal, as there’s probably not much to discuss:

3. Misc issues

  • Implement a functionality where users can choose in categories to show. (Issue #27)

    That would be covered with the above discussed Filter&Search (my 2) approach.

  • Add appropriate graphics for common event categories like Birthdays, travel. (Issue #33)

    I don’t think this a needed feature, and at the very least something to think about after the bigger fish are fried…

  • Add preferences to schedule a reminder a certain time(say 30 mins) before the event start time. (Issue #23)

    Discussed above with the other “Reminders” (my 1).


The most pressing issue seems to be the im/exporting/syncing of events, as the first commenters on this topic prove. We need a way to exchange events with others, and for a huge number of people that’s syncing with their Google calender and the CalDAV protocol as the first priority.

1 Like

How about having the search bar at the top-right position will be better, instead of adding it to the main window itself.

That way, it will not take as much space on the window, also we can add the Search Results to the EventView itself and add the filter option (for the profiles) there as well.

5 Likes

What about the week/month view? A view to display the results will be needed.

The currently active tab will be applied live. That is, if you’re on the Month tab, you’ll get only the events of this month filtered accordingly. Same for Week and Day.

I trust you had the UX sorted out, but it would still be nice to see some mock-ups regarding how the filtered results will be displayed on each tab. No rush, you can post them as you build the layout in code.

1 Like

I imagine getting a text control up there in the menu bar will look quite cramped. It’s not used in the GUI of any Haiku software so it will look alien.
I appreciate that doing it with a text control instead of like Tracker’s type-ahead filter would make the feature easier to discover. But, other than with Tracker windows, we do have quite a lot of empty gray space below the calender view. So maybe go with a regular BTextControl “Search terms:” there after all.
Anyway, how the search terms are gathered is a detail that can be tried out once the actual filtering feature is implemened.

I wouldn’t add “profiles” as additional filter option. We’ll just filter the currently set up view, e.g. the month and the currently selected profile(s). With the profiles as a checkmarkable menu in the menu bar, similar to the “View” menu.
The search term filter looks through event names, places, descriptions and categories.

The filtered event list would look exactly like the unfiltered list, just with only the matching events, ofc. Having a more prominent search term text control will make it obvious that we looking at a filtered list of events. We could also add some symbol to the tab label above, like “⬙ Month ⬙”, unfortunatley, among the thousands of weird symbols, there’s no funnel-symbol common for filters…
Or do additional tinting of the list background, though that’s not easy with the already existing tints for hidden and deleted events and keeping in mind people using custom or dark themes.

1 Like

Nice proposal!

2 Likes

Hi,
reminders and CalDAV would be my top priority.
There is an attempt to create a plug-in based architecture but everything is hard-coded, indeed.
Moreover, the Google Calendar code is broken.

It would make more sense to start from there, wouldn’t it?

PS: I had alreay thought about looking into the CalDAV integration and the plugin architecture, sooner or later. Probably later than sooner…

4 Likes

Hey! I Apologize for being inactive for a few days, actually my University Exams were going on (now they’re over)

The community has added much valuable insights for the proposal. The most pressing issue, which I haven’t included in my proposal) seems to be im/exporting/syncing of Events, i.e, syncing with the Google Calendar and the CalDav Protocol.

I have been researching around the CalDav Protocol for quite a time now, and now I am confident enough to say that this can be implemented.

@humdinger should I update this on my proposal as well?

As per the discussion, Reminders should be added not as a separate functionality, but as an “extension” to the Events.

And the Search and the Profile feature, I believe, needs some discussion.

4 Likes

Asking for my education: is there any specific reason why SQLite was chosen over BFS attributes? Having the events on the file system would have enabled some interesting scenarios, for example linking together:

6 Likes

No technical reason iirc, just easier for the person to implement then I think.
There is an open ticket to replace this with a BFS based storage anyhow.

3 Likes

I trust you have already seen there’s a library called libical that could help with the iCalendar integration and potentially with the overall CalDAV stack.

3 Likes

Thanks, I haven’t gone through all the tickets of all the apps on HaikuArchives as of yet but this ticket looks promising.
@humdinger and @Harshit_Sharma, I’m happy to help. Should you need anything just give me a shout.

1 Like

Be warned,*DAV protocols are a mess, and i am not aware to any maintained c/cpp library for them.
Again: it is a terrible mess.

1 Like

Welcome back! Hope you did good on your exams. :slight_smile:

If the proposals are still editable, by all means.

1 Like

Am I confused? @JadedCtrl removed SQL a year and a half ago:

I expect much of the discussions will take place at Calendar’s issue tracker and via PRs. Or, if a wider audience is needed, here on the forums.

2 Likes

The explanation is simple:

  1. This application is advertised on the Depot as being built on a SQLite backend
  2. SQL related code is on Github (SQLiteManager.cpp and SQLiteManager.h)
  3. I haven’t thoroughly analyzed the code on GitHub as of yet
    All the points above led me to a wrong assumption.
1 Like

Yes I have, thanks for sharing!

Time to edit that recipe’s description… :slight_smile:

The remnants of SQL are for importing existing “Events” created back when Calendar used SQL. Those will be phased out eventually, maybe after a few more releases down the road, to be sure the majority of users had time to migrate.

3 Likes