dimescheduler 0.1.0

Official Rust client library for the Dime.Scheduler API.
Documentation
//! Official Rust client library for the [Dime.Scheduler](https://dimescheduler.com) API.
//!
//! ```no_run
//! # async fn run() -> dimescheduler::Result<()> {
//! use dimescheduler::{entities::Tag, DimeSchedulerClient};
//!
//! let client = DimeSchedulerClient::from_env()?; // reads DIMESCHEDULER_API_KEY
//! client
//!     .tags
//!     .create(&Tag { code: "VIP".into(), ..Default::default() })
//!     .await?;
//! let entries = client.time_entries.get("2026-03-01", "2026-03-31").await?;
//! println!("{} time entries", entries.len());
//! # Ok(())
//! # }
//! ```
//!
//! Unlike the other Dime.Scheduler SDKs, this crate does not retry failed
//! requests. A 429 or 5xx surfaces as [`Error::Api`]; retry at the call site
//! if your workload needs it.

#![forbid(unsafe_code)]

mod api;
mod client;
mod error;
mod generated;
mod transport;

pub use api::{
    AppointmentApi, ConnectorApi, CrudApi, GeocodeApi, ImportApi, JobApi, MessageApi,
    NotificationApi, NotificationListOptions, OptimizationApi, ReadOnlyApi, RecommendationApi,
    RecurringAppointmentApi, ResourceCapacityApi, TaskApi, TaskAssignmentApi, TaskBudgetEntryApi,
    TaskListOptions, TimeEntryApi, TimeSessionApi, UserApi,
};
pub use client::{DimeSchedulerClient, Environment};
pub use error::{Error, Result};
pub use generated::{entities, models, types};

#[cfg(test)]
mod tests;