Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Php Rrule Laravel Package

rlanvin/php-rrule

Lightweight, fast RFC 5545 RRULE recurrence engine for PHP. Generate recurring dates/events from rules, iterate occurrences, and get human-readable descriptions. Inspired by python-dateutil. PHP 7.3+; intl recommended for humanReadable().

View on GitHub
Deep Wiki
Context7
2.6.0

Added

  • Bengali (bn) localization #159
  • Danish (da) localization #161
  • Greek (el) localization #157
  • Russian (ru) localization #153
2.5.2

Fixed

  • Fix "november" typo in french translation #155
  • Fix incorrect calculation from partially filled cache #160
2.5.1

Fixed

  • Fix insufficient type detection for FREQ and WKST leading to deprecation warning in tests with PHP 8.3 #149
  • Fix failing tests with ICU 72.1 because of NNBSP
  • Fix C.UTF8 locale support when intl isn't installed
2.5.0

Fixed

  • Swedish: Corrects the spelling of monday and the grammar of enumeration partials. #134
  • Spanish: Improve clarity in daily and weekly recurrence translation #147
  • Dutch: weekdays and months are written in lowercase #136
  • Better handle TZ with Exchange / M365 generated iCal files #143

Added

  • Human readable time of day option #124
  • Japanese translation #139
  • Czech translation #137
2.4.1

Fixed

  • Correctly parse DateTimeImmutable #132
  • Fix namespace on return type #130
  • Humanreadable gets monthly wrong #129
2.4.0

Fixed

  • Exclude files from dist packages #110
  • Improve German translation #112
  • Daylight Saving Time issue with PHP 8.1 #120

Added

  • Added Portuguese translation #108
  • Added Polish translation #106
2.3.2

Fixed

  • Fix timezone (and the entire rule) changed to uppercase if rule was created using createdFromRfcString #103
2.3.1

Fixed

  • Fix microseconds not always removed from dtstart, causing date comparison issues with specific date input #104
2.3.0

Added

  • Added Swedish translation #96
  • Added bin/review_translations.php as a helper for translators and contributors
  • Added Hebrew translation #95

Fixed

  • Fix Finnish translation #94
  • Update French translation
  • Update German translation
  • Fix compatibility with PHP 8.1 #100
2.2.2

Fixed

  • Fix getOccurrencesAfter returns empty array when $inclusive is false and $limit is not set #93
2.2.1

Fixed

  • Fix support for DateTimeImmutable #90
2.2.0

Added

  • Persian (Farsi) translation #72
  • Support for Windows timezone #69

Fixed

  • Fix valid rules wrongly detected as not producing results, and cut short after MAX_CYCLES #78
  • Fix RRule::createFromRfcString not detecting RSet properly if the rule was lowercase
  • [internal] Replace static variables by array constants (permitted since PHP 5.6). Shouldn't break backward compatibility unless you were doing weird things with this lib in the first place.
2.1.0

Fixed

  • Fix locale format for i18n files without intl extension #67

Added

  • Added new methods to RSet: removeDate, clearDates, removeExDate and clearExDates #66
2.0.0
  • Add support for PHP 7.3
2.0.0-rc1
  • Rewrite the core algorithm to use a native PHP generator, drop compatibility with PHP < 5.6 #43

Added

  • New option custom_path to humanReadable() to use custom translation files #56
  • New helpers methods #60
    • getOccurrencesBefore
    • getOccurrencesAfter
    • getNthOccurrencesBefore
    • getNthOccurrencesAfter
    • getNthOccurrencesFrom
1.6.3

Fixed

  • Fix error when timezone is an offset instead of an olson name. #61
  • Fix VALUE is a valid param of EXDATE #62
1.6.2

Fixed

  • Fix typo in NL translation #53
1.6.1

Fixed

  • Null check to prevent 0 (false) values being lost when exporting to RFC string #50
  • Fix warning in humanReadable() #44
  • Fix typo in NL translation #46
1.6.0

Added

  • German translation #38
  • Add include_until option to humanReadable to omit the "until" part of the rule #36
1.5.1

Fixed

  • Throw exception when passing a float instead of an int (e.g. INTERVAL=1.5) instead of casting silently
  • Variable name typo #34
1.5.0

Added

  • Add explicit_infinite and include_start options to humanReadable to respectivity omit "forever" and the start date from the sentence.
  • RSet constructor now accepts a string to build a RSET from a RFC string #26
  • New factory method RRule::createFromRfcString() to build either a RRule or a RSet from a string
  • Add a $limit parameter to getOccurrences() and getOccurrencesBetween() to make working with infinite rule easier
  • Add a $dtstart parameter to RRule and RSet constsructor to specify dtstart when working with a RFC string without DTSTART.

Fixed

  • When creating a RRule, the RFC parser will not accept multiple DTSTART or RRULE lines

Deprecated

  • RRule::parseRfcString is deprecated. Note: it wasn't part of the documentation in the first place, but just in case someone is using it, it's not removed yet.
1.4.2

Fixed

  • humanReadable() fails if the RRule was created from a RFC string containing the timezone (e.g. DTSTART;TZID=America/New_York:19970901T090000)
1.4.1

Fixed

  • RRule::offsetGet and RSet::offsetGet throw InvalidArgumentException for illegal offset types #22
  • Update exception message for UNTIL parse error #23
  • Fix parser handling of UNTIL when DTSTART is not provided #25
  • Accept invalid RFC strings generated by the JS lib but triggers a Notice message #25
  • Rework RRule::i18nLoad() to accept locales such as en_sg and use Locale::parseLocale when possible #24
  • Fix humanReadable fails with intl enabled when the timezone is "Z" #24
1.4.0

Added

  • Add RRule::getRule() method to return original rule array #17
  • Add RSet::getRRules(), RSet::getExRules(), RSet::getDates() and RSet::getExDates()
  • Tests for PHP 7.0

Fixed

  • Fix a bug in rfcString when using a frequency constant (instead of a string) to create the rule #16
  • Fix a undefined index bug in RFC parser
1.3.1

Added

  • Italian translation (it) #14

Fixed

  • Fixed a bug when combining values with an integer modifier and regular values in BYDAY (example 1MO,FR)
  • Fixed RRule created with a timestamp start date generates an invalid RFC string #15
1.3.0

Added

  • Spanish translation (es) #12
  • $include_timezone parameter to RRule::rfcString() to produce a RFC string without timezone information

Fixed

  • RRule::parseRfcString() is stricter and will not accept invalid DTSTART and UNTIL formats (use the array syntax in the constructor with DateTime objects if you need to create rules with complex combinations of timezones). #13
1.2.0

Added

  • Support for fallback locale when using RRule::humanReadable() #11
  • Dutch translation (nl) #9

Fixed

  • Fixed fatal error Locale class not found when intl extension is not loaded #10
1.1.0

Added

  • New class RRule\RSet (recurrence set) that can combine multiple RRULE, EXRULE, RDATE and EXDATE. #7
  • New interface RRule\RRuleInterface to unify RRule and RSet
  • New methods: isFinite(), isInfinite()

Fixed

  • Fix bug preventing the iteration of multiple instances of RRule at the same time
  • Fix occursAt failing when the date passed was a different timezone #8
  • Fix bug at WEEKLY frequency with a partially filled cache in some circumstances
  • Fix various reference bugs causing corruption of the cache in some circumstances (related to DateTime object being mutable)

Removed

  • The alias RRule::occursOn has been removed (use occursAt instead)
1.0.1

Fixed

  • Ensure the results are returned in the same timezone as DTSTART. #6
  • LogicException namespacing bug. #3
1.0.0

Added

  • First release, everything before that was unversioned (dev-master was used).
3.0.0
  • Drop support for PHP < 7.3 #119
  • Add support for PHP 8.4

Fixed

  • Added a workaround for a Carbon 3 bug that makes occursAt fail in some cases #164
  • Fix RSet not de-duplicating when using array access #165
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament