View Source Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

unreleased

Unreleased

0-10-3-2024-01-03

0.10.3 - 2024-01-03

  • Fixes a DST bug where an occurrence is not generated on the day of a DST switch #229 and #301 (thanks @davec82 and @Matsa59)
  • Fixes exception times not being applied when they fall out range of the schedule #241 (thanks @maxx-coffee)

0-10-2-2023-01-04

0.10.2 - 2023-01-04

  • Updated GitHub Actions steps to latest versions:

    • actions/cache 3.2.2, actions/checkout 3.2.0, erlef/setup-elixir 1.15, codecov/codecov-action 3.1.1
  • Updated Elixir dependencies:

    • excoveralls 0.15.1, dialyxir 1.2.0, ex_doc 0.29.1, earmark_parser 1.4.29, makeup 1.1.0, makeup_elixir 0.16.0, nimble_parsec 1.2.3, credo 1.6.7, bunt 0.2.1, timex 3.7.9, gettext 0.20.0, tzdata 1.1.1

0-10-0-2021-06-18

0.10.0 - 2021-06-18

added

Added

  • Ability to get RRULE string #174 (thanks to @yordis)
  • Expose Rule struct to docs #170 (thanks to @yordis)

fixed

Fixed

  • Fixed a timezone / DST related bug #160 (thanks to @peaceful-james)

updated

Updated

  • GitHub Actions update / refactor #164 (thanks to @vanvoljg)

0-9-0-2020-11-21

0.9.0 - 2020-11-21

added-1

Added

  • Monthly recurrences (thanks to @peaceful-james, @bruteforcecat and @Stroemgren!)

fixed-1

Fixed

  • Bug in Builder.String when there's only a single day (thanks to @chime-gm!)

0-8-4-2019-06-14

0.8.4 - 2019-06-14

updated-1

Updated

  • Dependency updates and credo refactors

0-8-3-2018-11-12

0.8.3 - 2018-11-12

fixed-2

Fixed

  • Allow additional keys in Cocktail.Span.span_compat type

0-8-2-2018-11-08

0.8.2 - 2018-11-08

fixed-3

Fixed

  • Fix a couple typespecs in Cocktail.Span (#66)

0-8-1-2018-02-17

0.8.1 - 2018-02-17

fixed-4

Fixed

  • Allow backwards compatible parsing of BYTIME rule for existing schedules generated using cocktail pre-0.8.

0-8-0-2018-02-17

0.8.0 - 2018-02-17

breaking

Breaking

  • The BYTIME option of RRULEs in the iCalendar output is now X-BYTIME to better follow the standard's extensions policy

added-2

Added

  • "time range" option (e.g. Schedule.add_recurrence_rules(:daily, time_range: %{start_time: ~T[09:00:00], end_time: ~T[11:00:00], interval_seconds: 1_800}); this serializes to X-BYRANGE in iCalendar format, using the extension prefix to signal that it's a proprietary extension)

changed

Changed

  • Formatted code-base with the new Elixir 1.6 code formatter
  • Changed Schedule.t() to not be an opaque type, which fixed the few missing typespecs

removed

Removed

  • JSON parser and builder; it was incomplete (will revisit in the future)

0-7-0-2017-12-07

0.7.0 - 2017-12-07

added-3

Added

  • The ability to pass anything responding to from and until to overlap_mode and compare

0-6-0-2017-10-30

0.6.0 - 2017-10-30

added-4

Added

  • Quick Start guide and logo to the README

fixed-5

Fixed

  • Some recurrence rules would keep the microsecond component of the start time when generating occurrences. Cocktail now always strips microseconds out, it only supports second precision.

0-5-3-2017-10-19

0.5.3 - 2017-10-19

fixed-6

Fixed

  • Giving empty lists for the :days, :hours, :minutes, :seconds, and :times options would produce invalid iCalendar strings

0-5-2-2017-10-06

0.5.2 - 2017-10-06

fixed-7

Fixed

  • Overriding the start time to before the schedule's start time would cause invalid occurrences to be emitted

0-5-1-2017-09-26

0.5.1 - 2017-09-26

fixed-8

Fixed

  • Removed problematic logging

0-5-0-2017-09-26

0.5.0 - 2017-09-26

added-5

Added

  • "time of day" option (e.g. Schedule.add_recurrence_rules(:daily, times: [~T[10:00:00], ~T[12:30:00]]); this serializes to BYTIME in iCalendar format, which doesn't actually exist, so don't use this if you need to be iCalendar compatible)

fixed-9

Fixed

  • Improved performance (up to 80x for certain types of schedules)

0-4-0-2017-09-19

0.4.0 - 2017-09-19

added-6

Added

  • Added Schedule.end_all_recurrence_rules/2 which adds an :until option to each recurrence rule in a schedule.
  • Added support for one-off recurrence times (RDATE in iCalendar)
  • Added support for exception times (EXDATE in iCalendar)

0-3-0-2017-09-14

0.3.0 - 2017-09-14

added-7

Added

  • Added the "minute of hour" option (BYMINUTE in iCalendar)
  • Added the "second of minute" option (BYSECOND in iCalendar)

0-2-1-2017-09-12

0.2.1 - 2017-09-12

added-8

Added

  • Added logo to documentation

0-2-0-2017-09-11

0.2.0 - 2017-09-11

added-9

Added

  • Better documentation to Schedule.occurrences/1 to explain the duration option on schedules.

0-0-1-2017-09-08

0.0.1 - 2017-09-08

initial-release

Initial release