Provider-agnostic async integration library
Project description
Omnidapter Core
Provider-agnostic async calendar, booking, and CRM integration library for Python.
omnidapter gives you one API surface for calendars (Google, Microsoft, Zoho,
Apple, generic CalDAV), booking (Cal.com, Square, Calendly, Zoho Bookings), and
CRM (HubSpot, Pipedrive, Salesforce, Zoho CRM).
Installation
pip install omnidapter
Quick Start
Calendar
from omnidapter import Omnidapter
omni = Omnidapter(
credential_store=my_store,
oauth_state_store=my_state_store,
)
conn = await omni.connection("conn_123")
cal = conn.calendar()
calendars = await cal.list_calendars()
async for event in cal.list_events("primary"):
print(event.summary)
Booking
from datetime import datetime, timezone
from omnidapter import Omnidapter, CreateBookingRequest, BookingCustomer
omni = Omnidapter(credential_store=my_store, oauth_state_store=my_state_store)
conn = await omni.connection("square_conn_1")
bk = conn.booking()
# Discover services and availability
services = await bk.list_services()
slots = await bk.get_availability(
service_id=services[0].id,
start=datetime(2026, 6, 1, tzinfo=timezone.utc),
end=datetime(2026, 6, 7, tzinfo=timezone.utc),
)
# Book a slot
booking = await bk.create_booking(CreateBookingRequest(
service_id=services[0].id,
start=slots[0].start,
customer=BookingCustomer(name="Jane Doe", email="jane@example.com"),
))
print(f"Booked: {booking.id} at {booking.start}")
# Cancel if needed
await bk.cancel_booking(booking.id)
Provider Keys
Calendar providers
googlemicrosoftzohoapplecaldav(manual registration)
Booking providers
calcomsquarecalendly(read-only — no booking creation)zoho(Zoho Bookings)
CRM providers
hubspotpipedrivesalesforcezoho(Zoho CRM)
Documentation
Normative behaviour is committed as OpenSpec capability specs in the repository
root under openspec/specs/:
provider-registry,provider-metadata— provider setup, registration, custom providersservice-calendar,service-booking,service-crm— service contracts and capabilitiesprovider-<name>— per-provider behaviour, capability-flag values, and quirksauth-credential-storage— production credential and OAuth state storage patterns
See the repository README and ARCHITECTURE.md for the overview.
Notes
- In-memory stores are for development only.
- Persist encrypted credentials for production.
- OAuth state storage must be shared across instances.
- Use
services=["booking"]when creating a connection to scope OAuth authorization to booking only. Omit to request all services the provider supports.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omnidapter-1.4.0.tar.gz.
File metadata
- Download URL: omnidapter-1.4.0.tar.gz
- Upload date:
- Size: 260.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7095e7db71be15046cc429b73ca5b2c86a5aa9dd4e82c6f238d97c44066bd616
|
|
| MD5 |
e47302258c551217a2c8576df8318131
|
|
| BLAKE2b-256 |
d1ac69f4714d2959c75bf4aa2b364bdf45a35109472c6f3f4ceac5f60a324f7d
|
File details
Details for the file omnidapter-1.4.0-py3-none-any.whl.
File metadata
- Download URL: omnidapter-1.4.0-py3-none-any.whl
- Upload date:
- Size: 351.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da53d8d16552f232f049dea82fbbc2870ae06596cc4ac415769af18fe933fa4b
|
|
| MD5 |
352af57ed3bf63a619f833737d8a7908
|
|
| BLAKE2b-256 |
943277be993634a1e11734d9c382054828f2f6a830e49b5219f7e60fb7c5b214
|