UPDATES EasyBlog 6.0.11 Released! Update to the latest version now!

Helpdesk

Your Time
Our Time
Response Time
24 — 48 hours
We strive to provide the fastest ever response possible. However, we are not super beings.

Allow at least 24 — 48 hours
  Support is offline
It is currently off working hours and most of us aren't around

Rest assured that we will get back to you as soon as the day starts tomorrow!
  Support is offline

Few suggestions - Events & Calendar

Alexandre Cayer · ·
11:10 PM Wednesday, 15 October 2014
None
Hi everyone,

I have been away for few weeks but I have been resuming my dev lately. First of all, congrats for all the amazing work guys for ES and upcoming EB!
Most of my initial custom dev for my invoice system is done and I'm going to incorporate it in ES soon. I have updated to new versions and, as my "hamster was spinning" on how to setup everything, I would like to share my own thoughts on what I would implement in my custom dev.
I know, hacking the code is bad, therefore sharing for future (possible) improvement that could be pull in a future version seem the best idea.

Therefore here it is:

The center of my dev is resume on having clients to be able to be billed on booking meetings on someone's "availability calendar". The event system is coming up pretty good and was thinking using it, plus a "booking availability" addon to see if one is available and then confirm if the rendez-vous can happen.

While thinking how to do such an "available calendar", I saw that they were missing few steps to make that happen. First of all, I see that the moment.js lib (probably from the upgrade to Fullcalendar v2 was done - good job), which greatly helps on timezone and having a good time JS lib. However, we are lacking a recurring event system, which could be easily setup my whole principle in one operation to setup a RecuringRULE like: i'm available from 8 to 17, Monday to Friday, Weekly. RRULE for iCal is something i never worked with before but libs were already created and could be incorporated in not much time.... Ingredients:

a) Bootstrap Fuel UX - Scheduler : UI to incorporate to the events/calendar for recurring process. It already provide the RRULE string from the choice of the user
b) RRULE.js - parser lib for RRULE : push the RRULE and get the table of dates (accept also moment lib). you look only for this month's (current view) date, therefore you use the between method and BOOM work is done.

This would have many more use... ex: When you have one's birthday in your calendar, it is added for life! We can have the list of Christmas, Easter, Thanksgiving for life... etc.

This little setup would see the db event table having 3 kind of event:
a) the one time, date specific, event
b) the recurring events, stored in RRULE
c) a mask to a recurring events, stored as a date specific event

the c) point is something that used to be done by SERIALIZING all dates of a RRULE in a one time, date specific event and then remove the specific event for which you don't want to have in the calendar... However, I found this a nightmare for long sequence of recurring event.

In a case: If my "availability calendar" is pretty much 200 days from 8 to 5 in a year long. It's only one database entry. If i want to change "working hours" from 7 to 5. I can change one value, instead of 200. (of course there is cases that serializing would be better, therefore that shall be an option at the end of the day). Then, If i want to take off on a Friday to go have a beer with coworker and therefore don't take meetings, I could put a MASK EVENT to a recurring event on that specific friday, from 7 to 5, to remove this specific day as available.

If you would want to have a recurring event serialize (ex: Each friday, from 9 to 5, for a Month) and convert a recurring event on 4 specific date event, that parser method shall also be good to then make specific change.

Since RRULE are also iCal's specs, it could also be exported.

Anyway, this is my own 2 cents to where I am leaning to as to be able to make my thing work. Just thought this could be something you guys at StackIdeas and other devs could use to make your own event/calendar system more responsive and closer to a real event/calendar system

Will share next idea later
The replies under this section are restricted to logged in users or users with an active subscription with us