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.





30th May - 12th June

Add recurrence support to GcalEvent


Make the appropriate function for detecting recurrence


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


27th June - 9th July

Add GcalRecurrence structure.


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


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


10th July - 23rd July

Handle complex recurrences with rules and exceptions


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


Add the remaining widgets not added from this mockup.



24th July - 4th August

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


5th August - 18th August

General Bug fixes


Document code and cleanup


Final Submission

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