# Tempus v1.0.0-rc.0 - Table of Contents

> Easy handling of time periods, like business days, holidays, etc.

## Pages

- [Tempus](readme.md)
- [Mathematical Background](background.md)
- [Getting Started](getting-started.md)
- [Comparing Tempus and Tempo](tempus_vs_tempo.md)

## Modules

- [Tempus](Tempus.md): `Tempus` is a high-performance Elixir library for working with time slots,
business schedules, availability streams, and slot arithmetics.
- [Tempus.Slots.Behaviour](Tempus.Slots.Behaviour.md): The bunch of functions expected to be implemented by `Tempus.Slots` implementations.

- [Tempus.Slots.Group](Tempus.Slots.Group.md): The protocol to implement for the ordered collection of slots.

- Helpers
  - [Tempus.Crontab](Tempus.Crontab.md): Helper functions to work with `cron` syntax.

  - [Tempus.Guards](Tempus.Guards.md): Compile-time guards for pattern matching, coverage verification, and slot comparisons.
  - [Tempus.Sigils](Tempus.Sigils.md): Handy sigils to instantiate `Tempus.Slot` and `Tempus.Slots`

- Core
  - [Tempus.Slot](Tempus.Slot.md): Declares a time slot interval and provides functions for interval arithmetic,
coverage checks, boundary comparisons, and transformations.
  - [Tempus.Slots](Tempus.Slots.md): The interface to deal with the implementation of `Tempus.Slot` ordered collection.

- Implementations
  - [Tempus.Slots.List](Tempus.Slots.List.md): The default `List` implementation of `Tempus.Slots` ordered collection.
  - [Tempus.Slots.Stream](Tempus.Slots.Stream.md): The default `Stream` implementation of `Tempus.Slots` ordered collection.

- Exceptions
  - [Tempus.ArgumentError](Tempus.ArgumentError.md): Raised at runtime when an argument passed to function is invalid

