Version 5.0.0

July 16, 2026

Fixed

  • Fixed a data bug where the loop end date was saved with the start time instead of the end time (#62)
  • Fixed an autoload failure when SEOmatic is not installed (#78)
  • Fixed crashes when the field value is empty or has no loop period (#63, #64, #65, #66, #74)
  • Fixed isValueEmpty() so the field can be treated as empty and required validation works (#79)
  • Fixed upcoming returning nothing when exactly one upcoming date exists
  • Fixed upcoming dates never being computed for loops without an end date
  • Fixed weekly loops returning more dates than the limit parameter allows
  • Fixed weekly loops returning dates that fall before the loop start date
  • Fixed recurringDates() excluding dates that fall exactly on the start or end boundary
  • Fixed the reminder date not being validated after DateTime::modify() (#67)
  • Fixed the plugin component registration conflict between the constructor and init() (#76)
  • Fixed the README containing content from another plugin

Changed

  • The Timeloop field value now always normalizes to a TimeloopModel, including empty values
  • Upcoming dates are now computed lazily instead of on every field load
  • craft.timeloop.getUpcoming() now returns null instead of false when there is no upcoming date
  • Removed the unused GraphQL interface stub and dead code (#68, #73)

Release

  • Stable Craft CMS 5 release

Version 5.0.0-beta.3

March 12, 2025

Release

  • Craft CMS 5 release update