Skip to main content

Reschedule

PyPI version

Goal

I want to keep track of all my todos in a plain text file but also automatically schedule my todos on my google calendar. When I write my todos in a todo list I often fail to allocate time for them in my calendar. When I look at my week I feel like I have tons of free time but in reality I have a full day of work to do. As an example this is what my week looks like without todos vs. with todos (in orange).

Example week with todos and without todos

This program automatically parses todos from a markdown file and schedules them on a google calendar.

- [ ] task name est:10m due:2020-03-20 id:1f2a4b

Installation

Using python >3.6

pip install reschedule

Now you can reschedule your todos by running reschedule from the command line. The first time you run reschedule you'll be prompted to authorize with google and a config file will be created for you at ~/.cache/reschedule/config.json.

Configuration

{
  "work_start_time": "08:00",
  "work_end_time": "18:00",
  "task_file_path": "~/todo.md",
  "task_calendar_name": "Reschedule Tasks",
  "chunk_size": 15,
  "default_est": "30m"
}
  • work_start_time: the earliest a task will be scheduled to start in %H:%M format. (i.e. military time such as 08:30 or 23:00)
  • work_end_time: the latest a task will be scheduled to end in %H:%M format. (i.e. military time such as 08:30 or 23:00)
  • task_file_path: the absolute path to your markdown file of tasks
  • task_calendar_name: the name of the google calendar this program will create to store your tasks. Must be unique from an existing calendar.
  • chunk_size: the minimum length of an event. 15 is a good default to keep your day from becoming too fragmented.
  • default_est: the default time estimate for a task

Task File Format

Task are written using markdown task-list format. To create a task use a new line with - [ ]. To mark a task as complete use - [x]. Metadata is attached to tasks using a key:value syntax. The key and the value cannot contain spaces or :. I call an instance of a key:value pair a tag, for instance an id tag is a key:value pair with a key of id. Every task needs a unique id tag for example id:1aab7d. Tasks can have an est tag which contains a time estimate written as 30m or 1h for 30 minutes or 1 hour respectively. Any number followed by m or h is acceptable as a value for the est tag. Finally tasks can have a due tag which contains a due-date formatted as YYYY-MM-dd.

<!-- A task with an estimate of 30 minutes, due March 6, 2020, with id 16cfe6 -->

- [ ] What you want to do est:30m due:2020-03-06 id:16cfe6

VSCode Snippets

I use the following user defined VSCode Markdown Snippets to create my tasks.

  // add a new task
  "task": {
    "prefix": "//task",
    "body": [
      "- [ ] ${1:What do you want to do?} est:${2:30m} id:$RANDOM_HEX"
    ]
  },
  // add a due date to a task
  "due": {
    "prefix": "//due",
    "body": "due:${1:$CURRENT_YEAR}-${2:$CURRENT_MONTH}-${3:$CURRENT_DATE}"
  },
  // create a random variable
  "random": {
    "prefix": "//random",
    "body": "$RANDOM_HEX"
  }

Metadata

Release files for reschedule 0.1.3

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

Source distribution (sdist)

Source distribution for reschedule 0.1.3
File Size Uploaded Provenance
reschedule-0.1.3.tar.gz 13.7 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 27.8 kB

Release files / reschedule-0.1.3.tar.gz

Download URL reschedule-0.1.3.tar.gz
Size 13.7 kB
Tags Source
SHA-256 checksum
How to use checksums
905b7dbad3d67f11eeb8859a05fd590584cd246cf32daa95f46c89e7904be858
BLAKE2b-256 checksum
How to use checksums
4a8263375d30f81e872a47595bc59af9bb3f49f28611cba25bf36f92f19e7ac9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.5 CPython/3.6.10 Darwin/18.7.0

Release files / reschedule-0.1.3-py3-none-any.whl

Download URL reschedule-0.1.3-py3-none-any.whl
Size 14.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
624f0331e41b70fca9d8c70e2247ebe3543192c3d9beeb22c3e025dbbcd7d832
BLAKE2b-256 checksum
How to use checksums
b2be63a924a29fd32a4fc0f73ea5ec0b8ede7fce74bbd535e617987cc59e4ebb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.5 CPython/3.6.10 Darwin/18.7.0

Security for reschedule 0.1.3

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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