Skip to main content

About the SDK

Dime.Scheduler ships official SDKs in three languages. All of them live in the dime-scheduler/sdk monorepo, all are generated from the same OpenAPI specification, and all expose the same surface - only the casing and idioms change.

LanguagePackageStatus
.NETDime.Scheduler on NuGetStable
JavaScript / TypeScript@dimescheduler/sdk on npmStable
Pythondimescheduler on PyPIAlpha

The dimescheduler CLI is generated from the same OpenAPI specification, so its commands stay in lockstep with the SDKs.

Shape

Every SDK exposes a single DimeSchedulerClient constructed with an API key and (optionally) an environment. Each entity hangs off a typed accessor:

// JavaScript / TypeScript
const client = new DimeSchedulerClient({ apiKey: "MY_API_KEY" });
await client.categories.create({ name: "VIP", color: "#22d3ee" });
// .NET
var client = new DimeSchedulerClient("MY_API_KEY");
await client.Categories.CreateAsync(new Category { Name = "VIP", Color = "#22d3ee" });
# Python
client = DimeSchedulerClient(api_key="MY_API_KEY")
client.categories.create({"name": "VIP", "color": "#22d3ee"})

Two kinds of accessor:

  • CRUD entities - about thirty of them - expose create / update / delete / getAll on a generic accessor. Both single entities and batches work.
  • Specialized endpoints (appointments date-range queries, geocoding, optimization, recommendation, notifications, messages, …) get their own methods.

Pick a language and follow the install / usage / examples pages on the left. If you're already familiar with one SDK, the other two will read the same way - the accessor names are kept in lockstep across all three.

When to use the SDK vs the CLI vs raw HTTP

  • SDK - embedding in an application (web app, integration service, scheduled worker). You get typed entities, retries, and per-language ergonomics.
  • CLI - scripts, CI jobs, one-off batch loads. Same accessor model, but you script it from a shell.
  • Raw HTTP - when neither fits, or you're working in a language without an official SDK. The API is documented in the reference.