Crate eventix

Crate eventix 

Source
Expand description

§eventix

A high-level calendar and recurrence library for Rust with timezone-aware scheduling, exceptions, and ICS import/export capabilities.

§Features

  • Timezone-aware events: All date/time fields use chrono with chrono-tz for proper timezone handling
  • Recurrence rules: Support for daily, weekly, monthly, and yearly recurrence patterns
  • Exceptions: Skip specific dates or apply custom filters (e.g., skip weekends)
  • ICS support: Import and export events using the iCalendar format
  • Builder API: Ergonomic, fluent interface for creating events and calendars

§Quick Start

use eventix::{Calendar, Event, Recurrence};

let mut cal = Calendar::new("My Calendar");

let event = Event::builder()
    .title("Weekly Team Meeting")
    .description("Discuss project progress")
    .start("2025-11-01 10:00:00", "America/New_York")
    .duration_hours(1)
    .recurrence(Recurrence::weekly().count(10))
    .build()
    .expect("Failed to build event");

cal.add_event(event);

Re-exports§

pub use calendar::Calendar;
pub use event::Event;
pub use event::EventBuilder;
pub use recurrence::Recurrence;

Modules§

calendar
Calendar type for managing collections of events
event
Event types and builder API
gap_validation
Gap and overlap validation for calendar events
ics
ICS (iCalendar) import and export functionality
recurrence
Recurrence rules and patterns for repeating events
timezone
Timezone handling utilities with DST awareness

Structs§

DateTime
ISO 8601 combined date and time with time zone.
NaiveDateTime
ISO 8601 combined date and time without timezone.

Enums§

EventixError
Error types that can occur in eventix operations
Tz
TimeZones built at compile time from the tz database

Type Aliases§

Duration
Alias of TimeDelta.
Result
Result type alias for eventix operations