Jump to content
bfarber
 Share


4.0 - Recurring calendar events

IP.Calendar has supported basic recurring calendar events for many versions now. You can create events that recur weekly, monthly or yearly in IP.Calendar, and they will automatically show up on their specified schedule. While this capability is certainly useful, we felt it was time to enhance event recurrence capabilities in the next version of IP.Calendar.


New options

Recurring every week, month or year is useful, but there are many other ways events can recur and IP.Calendar has no provisions to accommodate those recurrence types in the 3.x IP.Calendar release. For 4.0 we have added several new recurrence-based options to the calendar.

Recur daily, weekly, monthly or yearly
In addition to the three options available in previous versions, you can now configure events to recur daily.

Recurrence frequency
You are no longer restricted to recurring every week (or month or other time period). You can now configure events to recur every 2 weeks, or every 3 months, or every 10 days, or whatever period of time you need to.

Weekly recurrence: days of the week
If your event recurs weekly, you can now specify the days of the week the event should recur on. This means you can configure an event that recurs weekly on every Tuesday and Thursday, for instance.

Recurrence timeframe
In previous versions of IP.Calendar, the end date specified when the event should stop recurring. In 4.0, the end date/time specifies when the original recurrence end date/time are. This means you can have an event that lasts 2 days and recurs annually, for instance (in other words, recurring ranged events). When configuring the event, you now have three options for specifying the recurrence information:

  • Never end
  • End after a certain number of occurrences
  • End on a certain date


You can now configure events like Christmas which never end, you can configure meetings which have a certain number of occurrences before they are finished, and you can configure recurring events that end on a certain date.


As you can see, the options have been greatly expanded to accommodate many more types of recurring events.




Some technical details

At a technical level, event recurrence data is stored as an "RRULE", just like the iCalendar specification will specify. In fact, the data should be a 1:1 equivalent. If you import iCalendar events which have recurrence capabilities not supported by calendar, those events will be skipped during the import routine (as they are presently), however there are now far fewer recurrence capabilities that are wholly unsupported.

By storing the exact RRULE value we have a few benefits over previous versions of Calendar:
  • Event importing is simpler, as we can copy the rule directly into the database unmodified (after verifying we support all parameters)
  • Event exporting is simpler for the same reason
  • We can expand recurring event support in the future if necessary with few database changes necessary


Using PHP you can easily find future event recurrence details using the nextOccurrence() method.

    /**
     * Find the next occurrence of an event starting from a specified start point
     *
     * @param    IPScalendarDate        $date        Date to start from
     * @param    string                    $type        Type of date to check against (startDate or endDate)
     * @return    IPScalendarDate|NULL
     */
    public function nextOccurrence( $date, $type='startDate' )


This instance method is run against a calendar event, passing in a date to find the next occurrence from. You can look for either start date or end date.

 Share

Comments

Recommended Comments



Will IP.Calendar also support hours and minutes? So that when I open a day one the calendar I get all the hours in the day, something liking on the Calendar in MS Outlook?

 

I'm not sure I understand your question.  You can specify times for events (optionally), so an event can start on February 19, 2014 at 10:51 AM.  You can recur events that occur at specific times.  You cannot, presently, recur events every hour or every two hours and so on.  We debaed this but we felt (1) it probably had very little usefulness to most of our client base, and (2) it has a much higher likelihood of causing resource issues (an event in a given month does not have 5 instances or 10 instances in this case, but rather will be approaching 1000 instances - when you couple that with 5 or 10 events configured the same way it can really spiral).

Link to comment
Share on other sites

Good work so far, thank you. One issue with it is that when you import from say Google Calendar, it automatically creates RSVP's, when this doesn't make sense whilst importing public holidays. Hopefully will be addressed in the version and you'll be able to toggle RSVP on/off for imported calendar events where appropriate. Calendars like Google Calendar and other calendar apps etc have become so feature laden and useful over the last few years, with reminders of events via notifications and emails which you can customise, and different colours for different events. Hopefully some of these standardised features of today's calendars will find their way into IP.Calendar at some point.

Link to comment
Share on other sites

 

I'm not sure I understand your question.  You can specify times for events (optionally), so an event can start on February 19, 2014 at 10:51 AM.  You can recur events that occur at specific times.  You cannot, presently, recur events every hour or every two hours and so on.  We debaed this but we felt (1) it probably had very little usefulness to most of our client base, and (2) it has a much higher likelihood of causing resource issues (an event in a given month does not have 5 instances or 10 instances in this case, but rather will be approaching 1000 instances - when you couple that with 5 or 10 events configured the same way it can really spiral).

 

What I ment was a real calendar, liking on Outlook, when you open for example today it shows the hours that are in that day, and the appointments that are on those times.

Link to comment
Share on other sites

Looks very promising. Will events show up on the users' profiles? EX: Business user adds their events to the calendar, friends/followers look at that business' profile to see all content belonging to that business user, and they see upcoming events that user submitted. They can still view calendar to get a combined list of events as well.

Link to comment
Share on other sites

i am satisfied you are making some positive changes here (please make messenger user friendly, with working search at last;P], i use this calendar for markets and parties. i think that inbuild should be List View [there is Marcher hook for this on forums].

Link to comment
Share on other sites

with this changes: is it fxed now, that RSVP's showing up in recurring events, do count for all events (so if I RSVP on event on the 1st, do I see myself RSVP'ing on 5th anymore, if this is set-up recurring) - because that's what's happening right now.... still

Link to comment
Share on other sites

I know not a need but will holidays be a part of the calendar?

 

I don't know what you mean.  You can add holidays in the current release of IP.Calendar, and you will be able to continue to do so in the next release of IP.Calendar.

 

Good work so far, thank you. One issue with it is that when you import from say Google Calendar, it automatically creates RSVP's, when this doesn't make sense whilst importing public holidays. Hopefully will be addressed in the version and you'll be able to toggle RSVP on/off for imported calendar events where appropriate. Calendars like Google Calendar and other calendar apps etc have become so feature laden and useful over the last few years, with reminders of events via notifications and emails which you can customise, and different colours for different events. Hopefully some of these standardised features of today's calendars will find their way into IP.Calendar at some point.

 

Stay tuned for future blog entries on IP.Calendar.  I think you'll like some of the other changes we have in store. :)

 

 

What I ment was a real calendar, liking on Outlook, when you open for example today it shows the hours that are in that day, and the appointments that are on those times.

 

We will blog about the interface in due course.  The way our daily view has been laid out though has little to do with how recurring events are managed though.

 

great idea. does it notify subscribers when an event is edited?

 

As a general rule, the suite does not send notifications on edit.

 

dose it support smart repeat or formela based repeat for example i got event that start at 7 am and end at 1 pm for 4 days and rest 2 days and repeat the same event for the month smoething like schedule

 

Neither my iPhone nor Google Calendar can handle such an event either.  No, IP.Calendar can't do that.  You basically have TWO repeating series going on here...firstly it has to repeat for 4 days, then this series has to repeat with a 2 day rest period between each series over the course of the month.  Most calendar applications can't really handle two repeating series combined.

 

Now, you COULD create an event that starts at 7am the first day and ends at 1pm on the 4th day, then have this repeat every 6 days, with an ending time of a month in the future.  This does work, but it represents that the event is from 7am on day 1 until 1pm on day 4, not 7am-1pm each day for 4 days.

 

Looks very promising. Will events show up on the users' profiles? EX: Business user adds their events to the calendar, friends/followers look at that business' profile to see all content belonging to that business user, and they see upcoming events that user submitted. They can still view calendar to get a combined list of events as well.

 

Calendar events will show in submitter's profiles.  All content items do inherently.

 

Is there an ability to mark yourself as attending an event, and to see a list of attendees, and for the event creator to message attendees?

 

RSVP functionality is already present in 3.x and will be enhanced in 4.0.  We have a blog entry coming about RSVP functionality changes.

 

with this changes: is it fxed now, that RSVP's showing up in recurring events, do count for all events (so if I RSVP on event on the 1st, do I see myself RSVP'ing on 5th anymore, if this is set-up recurring) - because that's what's happening right now.... still

 

A recurring event is only saved once, and if you RSVP for the event it will show you have RSVP'd for the event.  You cannot RSVP for just one instance of that event.

Link to comment
Share on other sites

What about events that aren't on a specific date each (month/year) but happen on the same day of the X week or within a range of dates on a specific day?

 

For example, Thanksgiving is on the fourth Thursday every November (November 22nd to 28th).  Would there be a way to limit it to being "Nov 22nd - Nov 28th, Thursday" only?

 

There are some instances where that sort of control can come in handy.  So is that possible with what you described?

Link to comment
Share on other sites

What about events that aren't on a specific date each (month/year) but happen on the same day of the X week or within a range of dates on a specific day?

 

For example, Thanksgiving is on the fourth Thursday every November (November 22nd to 28th).  Would there be a way to limit it to being "Nov 22nd - Nov 28th, Thursday" only?

 

There are some instances where that sort of control can come in handy.  So is that possible with what you described?

 

I have outlined in the article how you can specify recurring events.  If you need to specify a recurring event in a manner not outlined in the blog entry above, it won't be possible.

 

To more directly answer your question, accounting for Thanksgiving (because it recurs in a rather non-standard fashion compared to most events) is not possible yet.  And as mentioned in the blog entry: "We can expand recurring event support in the future if necessary with few database changes necessary".  We will continue to improve recurrence support over time, and doing so is only really a matter of finding intuitive ways to implement the user interface (it is a challenge to create an interface to specify recurring events that can accommodate such complex recurrence cycles that is easy to use and understand).

Link to comment
Share on other sites

To more directly answer your question, accounting for Thanksgiving (because it recurs in a rather non-standard fashion compared to most events) is not possible yet.

From what I read, I thought this would be the case but thought maybe I was missing something. Would be nice to see that somehow implemented at some point. For an interface, maybe a way to open extra options for unusual scheduling needs, so it's not so cluttered but easy to get to.
Link to comment
Share on other sites




Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...