New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calendar updates - recurrence handling and monthly view #375

wants to merge 3 commits into
base: develop


None yet
2 participants

mbalfour commented Jul 17, 2016

The primary fix is to the handling of recurring events to make them show up correctly. There were multiple bugs that caused recurring events to break with exception dates and specific recurrence overrides.

There is also an addition of an optional monthly calendar view that shows calendar events on a monthly display instead of a list format.

MichMich and others added some commits Jul 12, 2016

Fix handling of recurring events and add monthly view
The primary fix is to the handling of recurring events.  For recurrence
rules in iCal (RRULE), it's possible to have overrides for specific
recurrences, and "exception dates" (EXDATE) for dates that a recurrence
shouldn't happen.  ical.js was ignoring EXDATE and just overwriting
RRULE entries with the specific recurrence overrides.  Here are the
- ical.js - added a recurrences[] array to store data about the specific
override.  added an exdate[] array to story data about exception dates.
(also added dtstamp, created, and lastmodified fields just for a bit
more completeness)
- calendarfetcher.js - changed the logic to handle the new recurrence
and exdate arrays correctly.  also added the ability to force a specific
start date to make testing easier. :)
- debug.js / node_helper.js - added pass-through code to pass the start
date override to calendarfetcher

Also added an optional monthly view to the calendar module (calendar.js
/ calendar.css).

This comment has been minimized.


MichMich commented Jul 20, 2016

Could you please add some screenshots of the list format? To this conversation?


This comment has been minimized.

mbalfour commented Jul 21, 2016


The list format is the existing (unchanged) calendar view. Monthly is the new view. Here's a screenshot with both, with the startDate set to 12/03/2015 for a slightly more interesting screenshot.

NOTE: You can't currently use both simultaneously very easily like in this pic though, since the underlying calendarFetcher uses the same maxEntries and numDays across the views. That's something I'll look at separately a little later. :)


This comment has been minimized.


MichMich commented Jul 21, 2016

I appreciate your effort, but currently I think your calendar overview isn't generic enough to implement into the default calendar module. Main contributor @KirAsh4 is already working on some other implementations. Feel free to join in on:

I suggest you modify you calendar to be used as a 3rd party module, and add it to the 3rd-party module list:²-Modules - This way others can still benefit from your work!

It would be great if you could send a new PR with only the recurrence handling bug fixes.


@MichMich MichMich closed this Jul 21, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment