Skip to content

API Guide

This page is a map of Slotify's public API. For exact signatures, the installed package version is the source of truth.

SlotGenerator

Creates timezone-aware slots from scheduling rules.

generate()
generate_for_date()
upcoming()

Configuration includes:

start / end
windows
schedule
duration
interval
timezone
weekdays
breaks
excluded_dates
dst_ambiguous
dst_nonexistent

Schedule

Defines recurring availability and exceptions.

weekly
overrides
closed_dates
annual_closed_dates

Slot

Represents an appointment interval.

start
end
duration
start_utc
end_utc
overlaps()
contains()
in_timezone()
to_dict()

AvailabilityEngine

Adds availability and booking behavior.

available_slots()
reserve()
cancel()
capacity
buffers
booking policies
resource_id

Booking

Represents a reservation and its protected time interval.

BookingPolicy

Defines booking restrictions such as:

  • minimum notice
  • maximum booking horizon
  • blocked periods

BookingStore

The storage abstraction used by the booking layer.

Slotify includes:

BookingStore
InMemoryBookingStore

Use the in-memory implementation for tests and simple single-process applications.

For multi-process/distributed production systems, provide durable transactional storage appropriate to your application.

Exceptions

The package exposes scheduling and booking exceptions including:

SlotifyError
ConfigurationError
InvalidTimeError
InvalidDateRangeError
InvalidTimezoneError
DSTTransitionError
SlotConflictError
SlotUnavailableError
BookingConflictError
BookingNotFoundError

Timezone helpers

get_timezone()
to_utc()
convert_timezone()
resolve_local_datetime()

Public imports

from slotify import (
    AvailabilityEngine,
    Booking,
    BookingPolicy,
    BookingStore,
    InMemoryBookingStore,
    Schedule,
    Slot,
    SlotGenerator,
    TimeWindow,
)