Skip to main content

Products.DateRecurringIndex

A Zope 2 catalog index with support for indexing of recurring events, following the icalendar standard. It is a drop-in replacement for the Zope2 DateIndex and will produce the same results for non-recurring dates.

The DateRecurringIndex accepts following parameters:

id

Required. The name of the field or object attribute to be indexed.

recurdef

Required. The name of the object attribute, which returns the icalendar rrule (recurrence rule) string.

until

Optional. The name of the objects attribute, which returns the date, until the recurrence should happen. The recurrence definition can also contain an UNTIL component. If both are defined, the recurrence calculation stops whenever the first until-date is met. If not given at all, there is a MAXCOUNT ceiling constant, defined in plone.event.recurrence, which defines the maximum number of occurrences.

Datetime.DateTime vs. datetime.datetime

Inside Zope2 everybody uses DateTime.DateTime or iow the Zope-DateTime. At time of writing Zope-DateTime (around 1998) there was no good date/time implementation in python. But these days we have a better implementation. Even if the pythons datetime implementation has its problems, together with pytz for timezone handling it is very mature.

So, why is it covered here? Just because dst-handling over recurring events works only if the start and until values are non-naive python datetimes. Just keep it in mind when using this index: If you use recurring dates and you want dst-adjust make sure your implementation returns a python datetime. And also keep in mind: If you are i.e. in Austria with CET timezone, add a recurring date: it will look fine to you, every day at 11:00am, doesn’t matter if DST or not, your event happens. If you go international and your event is shown in a different timezone - or in the same in a country without DST at all - it might differ and is not always at the the time.

Contributions by

Contributors, please add you name here! By doing this, you also state, that you have signed the Plone Contributors Agreement [1][2]. Thanks!

  • Jens Klein, yenzenz (Original implementation)

  • Johannes Raggam, thet

  • Roman Joost, romanofski

  • Dorneles Tremea, Dorneles

  • Sean Upton, supton

[1] http://plone.org/foundation/contributors-agreement/contributors-agreement-explained [2] http://plone.org/foundation/contributors-agreement/agreement.pdf/view

Changelog

4.0.0 (2026-05-18)

Breaking changes:

  • Replace pkg_resources namespace with PEP 420 native namespace. Support only Plone 6.2 and Python 3.10+.

New features:

  • Implements IDateRangeIndex to exclude DateRecurringIndex by indexes with value in the keys of the catalog plan [mamico]

3.0.1 (2019-10-03)

  • remove unicode char from CONTRIBUTORS.rst [tkimnguyen]

3.0.0 (2018-10-02)

  • Python 3/ Zope 4 compatibility. [pbauer, jensens]

  • Code alignment to Products.ZCatalog 4. [thet]

  • PEP 8. [thet]

2.1 (2014-03-02)

  • Fix the manage template declaration and avoid the deprecation warnings on Zope startup. [thet]

2.0.1 (2013-04-24)

  • Licence and contributors updates. [jensens]

2.0 (2012-10-12)

  • Use tuple to store self._unindex (reverse index) values, instead of an IISet, allowing for proper sorting, intended to fix: https://github.com/collective/Products.DateRecurringIndex/issues/1 For proper sorting, existing installations may wish to reindex any indexes installed in their catalog using DateRecurringIndex. [seanupton]

2.0b3 (2012-03-02)

  • Fixed broken manage template. [romanofski]

  • Added template to browse index contents. [romanofski]

  • Repackaging: Fixing MANIFEST.in and adding missing files. [thet]

2.0b2 (2012-02-25)

  • Repackaging: Adding a MANIFEST.in file. [thet]

2.0b1 (2012-02-24)

  • Refactoring to support recurrence calculations based on icalendar recurrence rules via plone.event. [thet]

1.0 (2009-04-10)

  • Initial release [jensens]

License

Copyright (c) 2008-2012, BlueDynamics Alliance, Austria and contributors. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of the BlueDynamics Alliance nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY BLUEDYNAMICS ALLIANCE AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BLUEDYNAMICS ALLIANCE AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Release files for Products.DateRecurringIndex 4.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Products.DateRecurringIndex 4.0.0
File Size Uploaded
products_daterecurringindex-4.0.0.tar.gz 16.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Products.DateRecurringIndex 4.0.0
File Interpreter ABI Platform
products_daterecurringindex-4.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.5 kB

Release files / products_daterecurringindex-4.0.0.tar.gz

Download URL products_daterecurringindex-4.0.0.tar.gz
Size 16.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2150357a686adfbeec0fbf1c8b5fe894ed380b0b87a62516306c3c29c42d395f
BLAKE2b-256 checksum
How to use checksums
f570ea4dc2d9eaa704b10be28eefcdb63d6962c80641109080da60a78e7c3b9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / products_daterecurringindex-4.0.0-py3-none-any.whl

Download URL products_daterecurringindex-4.0.0-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
82086d585ad380413fafcf71d34cff6377ebbd433409dc95978c6c26c5dbb5c4
BLAKE2b-256 checksum
How to use checksums
733d5e899fa5d33638233032b0c72614d15d89c8291f951d168c77585197b481
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

4.0.0 This release

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.1

1 release file

2.0.1

1 release file

2.0

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page