Skip to main content

owa-tools

Pipe-friendly CLI suite for Outlook and Microsoft 365. Calendar, mail, Graph, OneDrive, scheduling, people lookup, health checks - all from your terminal, all returning JSON by default.

PyPI GitHub release License: MIT

No Azure AD app registration. No third-party runtime dependencies beyond the auth broker. Auth piggybacks on the OWA browser session via owa-piggy - separate package, separate token store, installed as a dependency, never imported.

Every owa-* binary shares one CLI contract - the same output classes, exit codes, and JSON envelopes - so they behave consistently and compose cleanly in scripts and pipelines.

Install

Homebrew (recommended):

brew install damsleth/tap/owa-tools

PyPI:

pipx install --include-deps owa-tools

Either path lands eighteen binaries on your PATH (owa, owa-cal, owa-mail, owa-graph, owa-doctor, owa-people, owa-sched, owa-places, owa-drive, owa-todo, owa-planner, owa-sites, owa-teams, owa-vids, owa-ado, owa-swodp, owa-halo, owa-kova) plus the owa-piggy auth broker.

Quickstart

# 1. One-time auth setup (opens Edge, signs you in, captures a refresh token)
owa-piggy setup --profile work --email you@yourcompany.com

# 2. Verify everything's healthy
owa doctor

# 3. Try it
owa-cal events --pretty                          # today's calendar
owa-mail folders                                 # mail folders
owa-graph me whoami                              # who am I
owa-drive ls                                     # OneDrive root
owa-people find "ola nordmann"                   # people lookup
owa-sched availability --who you@example.com --date today

Every binary supports --help and <binary> help for the full command surface. JSON on stdout, logs on stderr, --pretty when you want a human-readable table.

The owa umbrella also dispatches to any tool, so owa cal events --pretty is equivalent to owa-cal events --pretty — everything after the tool name is passed straight through.

What's in the box

CLI What it does
owa-cal Calendar CRUD over Outlook REST. Events, categories, recurrence.
owa-mail Mail CRUD: messages, send, reply, forward, folders.
owa-graph Microsoft Graph CLI: verb-first plus 14 resource shortcut groups.
owa-people People, directory, and contacts via Graph.
owa-sched Free/busy and slot finding for one or many attendees.
owa-places Best-effort Outlook room/location lookup via SchedulingB2.
owa-drive OneDrive CRUD plus binary up/download.
owa-doctor Health check across the suite, all profiles, all audiences.
owa-todo Microsoft To Do tasks: lists, create, update, complete, delete.
owa-planner Microsoft Planner (read-only): plans, buckets, tasks, task detail.
owa-sites SharePoint (read-only) via SharePoint REST: site, lists, items, files, search.
owa-teams Microsoft Teams (read-only): joined teams, channels, chats, and channel/chat messages (threaded).
owa-vids Download Teams / OneDrive meeting-recap DASH streams and mux to MP4 (token-only, via ffmpeg).
owa-ado Azure DevOps: work items (WIQL), boards/sprints, repos & pull requests, pipelines & runs, library variable groups, task/deployment groups, environments & releases. Auth via owa-piggy --audience devops.
owa-swodp SWODP ServiceNow timesheets: Edge sidecar auth (the owa-piggy profile with swodp), reads, validated Pending-only writes, prod/UAT isolation.
owa-halo HaloITSM (read-only): ticket, status, metadata, actions/comments, attachments and inline screenshots. Auth via the halo service on an owa-piggy profile (clients add halo=<url>).
owa-kova Kova (Red Cross) schedule (read-only): your duties and the unit's open duties. Session via the kova service on an owa-piggy profile (clients add kova).
owa Umbrella: suite meta (owa list, owa schema, owa version, owa --doctor) plus owa <tool> ... pass-through dispatch (e.g. owa cal events).

This repo is CLI-only. For interactive TUI frontends (curses agenda browser, mail reader, Graph explorer), see owa-tui.

Multi-account / profiles

Microsoft 365 and Azure DevOps tools delegate auth to owa-piggy and inherit its profile model. owa-swodp is the exception: it reads ServiceNow cookies from an Edge sidecar (prod: the owa-piggy profile with swodp), selected with --instance prod|uat. For broker-backed tools, pin a profile for a tool, switch per call, or set it via env:

owa-cal --profile acme events --pretty         # one call
OWA_PROFILE=acme owa-cal events --pretty       # one shell session
owa-cal config --profile acme                  # persistent for owa-cal

Repeat --profile to fan out across profiles in one call - results are merged keyed by profile (exit 0 all ok, 2 mixed, 1 all failed):

owa-mail --profile acme --profile brkh messages --unread   # both inboxes, merged

See docs/profile-model.md for the full precedence rules.

For agents and automation

  • JSON on stdout by default. --pretty is the human opt-in.
  • --agent wraps output for automation tooling; --err-json emits structured stderr.
  • owa schema aggregates per-tool schemas for discovery.
  • Exit code taxonomy is shared across the suite (docs/agent-integration.md).

Docs

Maintainer reference:

Releases

Contributing

See CONTRIBUTING.md for setup, tests, coverage gates, commit conventions, and code style. The release flow lives in RELEASING.md, and architecture/agent guidance lives in AGENTS.md.

License

MIT.

Metadata

Release files for owa-tools 1.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for owa-tools 1.8.0
File Size Uploaded
owa_tools-1.8.0.tar.gz 320.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for owa-tools 1.8.0
File Interpreter ABI Platform
owa_tools-1.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 688.9 kB

Release files / owa_tools-1.8.0.tar.gz

Download URL owa_tools-1.8.0.tar.gz
Size 320.1 kB
Tags Source
SHA-256 checksum
How to use checksums
aac78e618d2b0e2b4a8d95ea6d0ea3b6f6c1d999702c54840838c52d378b25c8
BLAKE2b-256 checksum
How to use checksums
6d14b44475f943a249551d8d8167d88e46055d32f4eb92e5915214d22c69e81d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / owa_tools-1.8.0-py3-none-any.whl

Download URL owa_tools-1.8.0-py3-none-any.whl
Size 368.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1107e7f028207cfa5c2cc66784b4445f2732b4cfe1c51c29ac43e9e1a1a56225
BLAKE2b-256 checksum
How to use checksums
42f5b21a7e442dbbd9b5140d6b9c8a2704d7adc646e6bf926870db8170df00e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

1.9.0

2 release files

This release

1.8.0 This release

2 release files

1.6.0

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.2.1

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page