Date Specs

Primitives

Literal

There are several literals that can be used interchangeably. Literals are case-insensitive.

We have weekdays:

We have months:

And we have a special literal to describe events that occur every day: daily.

Internally literals are translated to other expressions, e.g. triples or ranges.

Triple

Triple consists of one, two or three integers separated by /. Following logic applies:

Prefix

There are following primitives of this type:

Internally prefixes are translated to other expressions, e.g. triples or ranges.

Operators

There are following operators, listed from the highest to the lowest priority:

Symbol Name
- range
! inversion (not)
, alternative (or)
(space) conjunction (and)

Note that range is inclusive. It can have two operands, only one of them, or none of them. The only allowed operands are triples. If right-hand side triple has any of the components missing, it inherits them from the left-side triple. For instance: