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.
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
-
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
- Ability to get RRULE string #174 (thanks to @yordis)
- Expose Rule struct to docs #170 (thanks to @yordis)
- Fixed a timezone / DST related bug #160 (thanks to @peaceful-james)
- GitHub Actions update / refactor #164 (thanks to @vanvoljg)
0.9.0 - 2020-11-21
- Monthly recurrences (thanks to @peaceful-james, @bruteforcecat and @Stroemgren!)
- Bug in
Builder.String
when there's only a single day (thanks to @chime-gm!)
0.8.4 - 2019-06-14
- Dependency updates and credo refactors
0.8.3 - 2018-11-12
- Allow additional keys in Cocktail.Span.span_compat type
0.8.2 - 2018-11-08
- Fix a couple typespecs in Cocktail.Span (#66)
0.8.1 - 2018-02-17
- Allow backwards compatible parsing of BYTIME rule for existing schedules generated using cocktail pre-0.8.
0.8.0 - 2018-02-17
- The
BYTIME
option ofRRULE
s in the iCalendar output is nowX-BYTIME
to better follow the standard's extensions policy
- "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 toX-BYRANGE
in iCalendar format, using the extension prefix to signal that it's a proprietary extension)
- 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
- JSON parser and builder; it was incomplete (will revisit in the future)
0.7.0 - 2017-12-07
- The ability to pass anything responding to
from
anduntil
tooverlap_mode
andcompare
0.6.0 - 2017-10-30
- Quick Start guide and logo to the README
- 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
- Giving empty lists for the :days, :hours, :minutes, :seconds, and :times options would produce invalid iCalendar strings
0.5.2 - 2017-10-06
- Overriding the start time to before the schedule's start time would cause invalid occurrences to be emitted
0.5.1 - 2017-09-26
- Removed problematic logging
0.5.0 - 2017-09-26
- "time of day" option (e.g.
Schedule.add_recurrence_rules(:daily, times: [~T[10:00:00], ~T[12:30:00]])
; this serializes toBYTIME
in iCalendar format, which doesn't actually exist, so don't use this if you need to be iCalendar compatible)
- Improved performance (up to 80x for certain types of schedules)
0.4.0 - 2017-09-19
- 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
- Added the "minute of hour" option (
BYMINUTE
in iCalendar) - Added the "second of minute" option (
BYSECOND
in iCalendar)
0.2.1 - 2017-09-12
- Added logo to documentation
0.2.0 - 2017-09-11
- Better documentation to
Schedule.occurrences/1
to explain the duration option on schedules.