Free Support Forum -

Can Aspose.Recurrence do this....?

This product has a great concept and could be very useful.

It seems to be limited in resulution to per day occurrences? I’m interested in assigning times to those occurrences. I’d like to be able to use this api to include scheduling in my own software, for example “execute this task every 30 seconds, and that task every 5 minutes”.

I also want to be able to have a calendar that many people post events too, and then on another page you can view a calendar with all events combined onto one page. Is that possible with this program?

Thank you.


Yes, we do plan to support time in the recurrence patterns. In fact we plan to support all iCalandar (this is an RFC) recurrence patterns. This feature is likely to be available in April.

The full extent of the task where you want to combine events from many people seems to be out of scope for the component, I think it should be done by your program. But Aspose.Recurrence will support it because all recurrence patterns can be serialized.

You just need to decide how you want to accept events, maybe via web services. Then decide where you want to store all the events, it could be a database or XML file for example. Then your code should accept the request, create a Recurrence pattern and serialize it with some extra data such as a event name, owner name etc into your calendar storage.

Something similar is achieved in the TaskForm demo where Task object has a Recurrence object and task description and serializes them into calendar-like XML file.

When we support iCalendar then recurrence patterns can also be serialized in iCalendar format.

From David:

I’ve given it some thought. Perhaps if I can provide an array of
recurrance patterns, a start date and an end date, I can get back an
array of events in the time window? If you think other people could use
this functionality please add this to the “wish” list. I think that I
can get the desired effect if I give users the ability to define
recurrence patterns, and then I load all recurrance patterns from my
database into an array, and pass to a function that can return all
events that take place from all patterns in the provided array. Do you
think this is a good approach?

Yes, I think sounds good.

Aspose.Recurrence specializes in calculating event dates for one recurrence pattern at a time. I think it should stay at this level and leave question of packaging multiple recurrence patterns into arrays or calendars or databases up to the programmer. If you need events for all your recurrence patterns just go through all of them and ask each one to calculate.

I’m very interested in this product. However, there are 2 additional recurrance patterns my app needs to support.

The first one is Time, such as every 1.5 hours. I saw an earlier post that stated you planned to support Time recurrance patterns. How soon will that be available?

The second is Semi-Monthly. Are there any plans at all to support this?

Finally, I saw another post asking about the possibility of having the recurrance task be a program. Thus, when the time reached, the program automatically starts to run. Is this something you plan to support as well?

Hi Karen,

1. Regarding semi-monthly you can create one Monthly pattern and set day of occurrence 15th of each month and create another Monthly pattern and sat of occurrence to be 1st of the months. Then you can just combine output of both patterns. Isn’t this good enough for semi-monthly?

2. We plan to support time recurrence patterns in the next version of Aspose.Recurrence. Estimated delivery end of April.

3. I think it is up to the customers to build whatever solutions they want using Aspose.Recurrence which we think is going to be just the engine that calculates occurrence dates and times. At the moment there is no plan to turn it into something like a scheduling service (is this what you want?). Tell us more about how you want to use Aspose.Recurrence and we might come up with some useful resolution.


Thanks for the quick response, but please bare with me. I guess I don’t quite understand your proposed implementation of semi-monthly.

Using payroll as an example, semi-monthly people will get paid on the 15th of the month and the end of the month. If the 15th falls on a Saturday, payday most likely will be Friday the 14th. Likewise, if the 15th falls on a Sunday, payday most likely will be Monday the 16th. (Who know what would happen if payday fell on a holiday!) Does this mean I need to set up one Monthly pattern on the 15th, then go through all the months to find the months in which the 15th falls on a weekend and override that occurance to be the correct paydate? Same goes for the end of the month…

Thanks for helping me to understand.


I think I’ve seen this payments rule regarding Saturday and Sunday before so I guess it is pretty standard for many organizations, right? As it stands Aspose.Recurrence does not implement this rule and I agree it should be supported.

At the moment Aspose.Recurrence has patterns that allow to select say last work day or first weekend day etc, but these do not match what you want.

If you want to go ahead quickly then create two monthly patterns.
One for 15th of each month and another for 31st of each month (it will select last day of the month always).
Then collect output of both batterns and do this (pseudocode):
if (date.DayOfWeek == DayOfWeek.Saturday)
date = date.AddDays(-1);
else if (date.DayOfWeek == DayOfWeek.Sunday)
date = date.AddDays(1);
This will correct for your weekend rule.

Holidays is a separate subject. Holidays are different in different countries and at the moment Aspose.Recurrence does not know what they are. They can be on different dates in different years depending on the weekday. Most of the time they are governed by a rule and can be calculated exactly. I guess it is sort of “finanicial” specialization and Aspose.Recurrence has not reached that far yet. It is possible and we will consider it, but I cannot promise right now.

You can, however add exemptions that change or skip certain occurrence dates in a recurrence pattern. Basically, if you know say 25th Dec this year is a holiday, just add it as an exemption. But this will need to be done for the next year too and so on.

Hi Roman,

When do you think the iCalendar and Time based release will be completed?

- Mark

Hi Mark,

Thanks for your interest.

It is looking very good and we are through final stages at the moment. It will be released early September.

Aspose.iCalendar that supports time recurrence patterns is available, let us know if you want to upgrade from Aspose.Recurrence to Aspose.iCalendar.