Skip to main content

Schedule any job for anyone anywhere — in one line.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

schedline-0.1.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

schedline-0.1.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file schedline-0.1.0.tar.gz.

File metadata

  • Download URL: schedline-0.1.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for schedline-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dea4b715e3d50ffac6d6f3d5ac6a5983e0080b9751f0c8a1f3f6dc2140beb362
MD5 3e92234cba1f4081c06a342590fd044a
BLAKE2b-256 8a824e3d8b0ea80e65a98fc0c9caa820e6e87f1e8018cd431fb15fc31b264274

See more details on using hashes here.

Provenance

The following attestation bundles were made for schedline-0.1.0.tar.gz:

Publisher: release.yml on DavidTbilisi/schedline

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file schedline-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: schedline-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for schedline-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f00de8ca9b6b5d8f35e90dad86f4344b83a307de100474c0392f680beab3600
MD5 3e6a28162687103268fe31ea366c65da
BLAKE2b-256 ca9483c8322e2ed5b6f27aed3d1db2908d4a7fafc94fc583581843dfd1b9afff

See more details on using hashes here.

Provenance

The following attestation bundles were made for schedline-0.1.0-py3-none-any.whl:

Publisher: release.yml on DavidTbilisi/schedline

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page