Calendar: Add Recurrent Events Support

About the Project

The goal of the project is to add support to recurrent events in GNOME Calendar.

Support for recurrent events already exists in Evolution calendar but it is lacking in GNOME Calendar. For example, right now, for a weekly repeating event, users have to manually add that event every week which is very inconvenient and time consuming.

Recurrence property will be added to GcalEvent in Calendar. A new GcalRecurrence structure will be introduced which will handle the recurrence part in GcalEvent using Evolution’s API. The Edit-dialog (mockup) will be modified accordingly.

What is Evolution?

Evolution is a calendar and a mailing client. Learn more about Evolution here.

About Me

I am Yash Singh.

GSoC Final Report/Evaluation

Bugzilla link for the bug-report/patches.

Merged Commits

Work left to do

  1. Ensure proper removal of recurrences. (When a recurring event's property is changed to 'No Repeat', the recurrences do not get removed properly)
  2. Extract the correct start date of the recurring event while making changes. (Right now the start date extracted is that of the recurrence and not of the first recurrence)
  3. Adding test suites for loading GcalManager, Adding/Removing simple events.

Schedule

Week

Deliverable

Status

30th May - 12th June

Add recurrence support to GcalEvent

DONE

Make the appropriate function for detecting recurrence

DONE

13th June - 26th June

Adapt Edit-dialog to the new recurrence by adding support to modify/delete event with recurrency, with options:- All events, Subsequent Events, This one only

DONE

27th June - 9th July

Add GcalRecurrence structure.

DONE

Add ‘Repeat Popover’ to Edit-dialog with options:- Weekly, Monthly etc.

DONE

Handle simple recurrences that adhere only to the ‘Repeat popover’ options. (exceptions not included)

DONE

10th July - 23rd July

Handle complex recurrences with rules and exceptions

DONE

Add ‘Repeat options’ popover with options:- Until Date, Forever etc.

DONE

Add the remaining widgets not added from this mockup.

DONE

GUADEC

24th July - 4th August

Add test suites for:- Loading GcalManager, Adding/Removing events (without recurrences), Editing Events (without recurrences)

TODO

5th August - 18th August

General Bug fixes

DONE

Document code and cleanup

DONE

Final Submission

Outreach/SummerOfCode/2017/Projects/YashSingh_Calendar_AddRecurrentEvents (last edited 2017-08-25 14:45:18 by YashSingh)