Allgemein

Dirk Eddelbuettel: qlcal 0.1.0 on CRAN: Easier Calendar Switching

Dirk Eddelbuettel: qlcal 0.1.0 on CRAN: Easier Calendar Switching

The eighteenth release of the qlcal package
arrivied at CRAN today. There
has been no calendar update in QuantLib 1.41 so it has been relatively
quiet since the last release last summer but we now added a nice new
feature (more below) leading to a new minor release version.

qlcal
delivers the calendaring parts of QuantLib. It is provided (for the R
package) as a set of included files, so the package is self-contained
and does not depend on an external QuantLib library (which can be
demanding to build). qlcal covers
over sixty country / market calendars and can compute holiday lists, its
complement (i.e. business day lists) and much more. Examples
are in the README at the repository, the package page,
and course at the CRAN package
page
.

This releases makes it (much) easier to work with multiple calendars.
The previous setup remains: the package keeps one ‘global’ (and hidden)
calendar object which can be set, queried, altered, etc. But now we
added the ability to hold instantiated calendar objects in R. These are
external pointer objects, and we can pass them to functions requiring a
calendar. If no such optional argument is given, we fall back to the
global default as before. Similarly for functions operating on one or
more dates, we now simply default to the current date if none is given.
That means we can now say

> sapply(c("UnitedStates/NYSE", "Canada/TSX", "Australia/ASX"), 
         (x) qlcal::isBusinessDay(xp=qlcal::getCalendar(x)))
UnitedStates/NYSE        Canada/TSX     Australia/ASX 
             TRUE              TRUE              TRUE 
> 

to query today (February 18) in several markets, or compare to two
days ago when Canada and the US both observed a holiday

> sapply(c("UnitedStates/NYSE", "Canada/TSX", "Australia/ASX"),
         (x) qlcal::isBusinessDay(as.Date("2026-02-16"), xp=qlcal::getCalendar(x)))
UnitedStates/NYSE        Canada/TSX     Australia/ASX 
            FALSE             FALSE              TRUE 
> 

The full details from NEWS.Rd follow.

Changes in version 0.1.0
(2026-02-18)

  • Invalid calendars return id ‘TARGET’ now

  • Calendar object can be created on the fly and passed to the
    date-calculating functions; if missing global one used

  • For several functions a missing date object now implies
    computation on the current date,
    e.g. isBusinessDay()

Courtesy of my CRANberries, there
is a diffstat report for this
release
. See the project page
and package documentation for more details, and more examples.

This post by Dirk
Eddelbuettel
originated on his Thinking inside the box
blog. If you like this or other open-source work I do, you can sponsor me at
GitHub
.

Edited 2026-02-21 to correct a minor earlier error: it referenced a
QuantLib 1.42 release which does not (yet) exist.