Skip to main content

schedline

CI

Schedule any job for anyone anywhere — in one line.

A zero-dependency scheduling engine with a terse one-line grammar, an auto-registering store, three-lens conflict detection, and a read-only terminal viewer. Type a thought, it becomes a scheduled job.

$ schedline add 'kani: dropoff Tue,Thu 10:45-11:15 @kindergarten #care'
added: [1] kani: dropoff Tue,Thu 10:45-11:15 @kindergarten #care /personal

$ schedline add 'david: "AWS Arch" Mon 13:40-15:50 @room-204 #uni'
$ schedline add 'david: dentist Mon 14:30-15:30 @clinic #health'
added: [3] david: dentist Mon 14:30-15:30 @clinic #health /personal
  ⚠ double-booked: [2] david: AWS Arch Mon 13:40-15:50 @room-204 #uni /personal

Install

pip install schedline

The grammar

<who>: <what> <when> [@where] [#tag ...] [/namespace]
Part Meaning Examples
who assignee id (auto-registers) kani
what free text; quote if multi-word "AWS Arch"
when day-spec and/or time range Tue,Thu · Mon-Fri · 2026-06-20 · today · tomorrow · 13:40-15:50
@where location (auto-registers) @kindergarten
#tag zero or more tags #care #uni
/namespace bucket (default personal) /business

People, places, and tags auto-register on first use — there is no schema to edit before scheduling a new person or place.

Commands

schedline add "<line>"      parse a shorthand line and store it (warns on clashes)
schedline ls [filters]      list jobs    --ns --who --where --tag --day
schedline agenda [--day D]  day-by-day, conflict-flagged
schedline rm <id>           delete by id
schedline who | where       list known assignees / locations
schedline view              read-only curses viewer (calendar / swimlanes / dashboard)

sched is installed as a short alias for schedline.

Conflict detection

Every add checks three lenses (advisory — it warns, never blocks):

  1. Person double-booked — same assignee, overlapping time.
  2. Location occupied — same @place, overlapping time, different people.
  3. Travel gap — same person, back-to-back jobs at different places with less than SCHEDLINE_TRAVEL_BUFFER minutes between them (default 30).

Store location

Jobs live in a single JSON file, resolved in this order:

  1. --store <path>
  2. $SCHEDLINE_STORE
  3. $XDG_DATA_HOME/schedline/jobs.json (default ~/.local/share/schedline/jobs.json)

License

MIT

Metadata

Release files for schedline 0.1.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 schedline 0.1.0
File Size Uploaded
schedline-0.1.0.tar.gz 14.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for schedline 0.1.0
File Interpreter ABI Platform
schedline-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.6 kB

Release files / schedline-0.1.0.tar.gz

Download URL schedline-0.1.0.tar.gz
Size 14.1 kB
Tags Source
SHA-256 checksum
How to use checksums
dea4b715e3d50ffac6d6f3d5ac6a5983e0080b9751f0c8a1f3f6dc2140beb362
BLAKE2b-256 checksum
How to use checksums
8a824e3d8b0ea80e65a98fc0c9caa820e6e87f1e8018cd431fb15fc31b264274
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 16, 2026.

Transparency log

Release files / schedline-0.1.0-py3-none-any.whl

Download URL schedline-0.1.0-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0f00de8ca9b6b5d8f35e90dad86f4344b83a307de100474c0392f680beab3600
BLAKE2b-256 checksum
How to use checksums
ca9483c8322e2ed5b6f27aed3d1db2908d4a7fafc94fc583581843dfd1b9afff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

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