[GSoC 2017] Calendar Application

Introduction

Hello I'm Akshay (IRC/Trac: akshay, GitHub: AkshayAgarwal007) from Kolkata, India. I would be working on developing a native Calendar Application for Haiku as a part of Google Summer of Code 2017. My mentors for the project are Scott McCreary and Kacper Kasper. I am very excited for this project.

Why a Calendar Application? Isn't there already one?

A Calendar application is a must have application for any operating system and would be beneficial for end users as well as developers. Haiku doesn't have a calendar application yet. There are a few existing 3rd party Calendar apps out there, but none are close to a simple and elegant Calendar app that an end user would like to use, with all the necessary features a modern Calendar app should have.

Also the existing ones (Borg, A-Book, Organizer, Eventual) have issues of their own and hence I would be writing one completely from scratch, referring them wherever required.

Features the Calendar app would have

I reviewed a bunch of Calendar apps on other platforms and came up with a subset of necessary features to be implemented:

Create, modify and synchronise events.

Set event reminders.

Display Day, Month Calendar views.

Set event color.

All day long events, recurring events.

Google Calendar integration.

A minimal look with intuitive UI design.

Future features

These are the features that I plan to work upon after GSoC:

Support for alternate calendars.

Categorize events.

Search for events.

Week, Year View.

Timeline view for a single day/week.

Google Calendar Integration

This is one of the most important feature the Calendar app would have. It is a must have so that the users can get their events synchronised between devices and other platforms they use. Since almost all the calendar apps have a Google Calendar integration, this would be the best way to achieve event synchronisation.

A Google Calendar API client would be written using Haiku APIs and would be integrated into the application.

Wireframes

These are some tentative designs for the Calendar application.

Add Event

I would be coming up with a final design for this, incorporating all the options required for supporting recurring events and an event color picker.

Day View

All day long events would be pinned to the top.

Right click on an event will open a context menu with three options (View, Modify, Delete)

View will open the entire event details in read only mode. Modify and Delete options would also be available inside View mode.

Using the calendar widget in the side panel, user can navigate through months. Buttons to navigate one month at a time can be replaced by a dropdown to simply select month+year for user's ease.

Month View

Clicking on a particular day in month view will show events of that day in side panel.

Again the buttons to navigate one month/year at a time can be replaced by a dropdown to simply select month+year for user's ease.

I would be finalising the user interface design in the upcoming week and suggestions from you all would be highly valuable for the same.

Icons

I plan to use the following icons in the application (icons be Michele Frau [Zumi] are really cool):

Main Application icon:

http://zumi.xoom.it/myhaiku/3rd%20party%20apps/schedule%20r3.png

icon: http://zumi.xoom.it/myhaiku/3rd%20party%20apps/schedule%20r3.png Add Event toolbar icon:

http://zumi.xoom.it/myhaiku/btoolbar/document%20open%20recent.png

toolbar icon: http://zumi.xoom.it/myhaiku/btoolbar/document%20open%20recent.png I would be needing a Calendar toolbar icon similar to one in the wireframes.

Apart from this I would also be working on to improve date/time classes in Haiku as required for the application.

References