Giter VIP home page Giter VIP logo

taskpaper-repeat's Introduction

TaskPaper Repeat Script Build Status

A script for managing recurring tasks in TaskPaper 3. After running the script, whenever a task with a @repeat value is marked @done, the script immediately duplicates the task and increments the @start and @due dates.

Usage

Download the latest release repeat.scpt file, and install it in TaskPaper's Command Pallet. You can run the script manually or run the script automatically when TaskPaper launches using a tool like Alfred or Keyboard Maestro.

@repeat

Add a @start and/or @due date, and a @repeat value to your recurring task. The @repeat value can be:

  • the next date - e.g. Wednesday, June 3, Nov 26 8:15
  • the next dates, separated by comma - e.g. Monday,Wednesday,Friday
  • a duration offset from the last start/due date - e.g. +6 hours, +3 day, +1 month
- repeat next March 20th at 7pm @due(2018-03-15 19:00) @repeat(March 20 7pm)
- repeat every weekday @start(2018-03-20) @repeat(Monday,Tuesday,Wednesday,Thursday,Friday)
- repeat 2 weeks after the start date @start(2018-03-15) @due(2018-03-20) @repeat(+2 weeks)

See the TaskPaper dates guide for more info on date formats.

@repeat-from-done

By default, new repeat dates anchor from @start / @due. Add the @repeat-from-done tag if you want to repeat from completion date instead.

- repeat 1 week after completion @due(2018-11-11) @repeat(+1 week) @repeat-from-done
- repeat the Monday after completion @start(2018-11-11) @repeat(Monday) @repeat-from-done

taskpaper-repeat's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

taskpaper-repeat's Issues

Request: option to ignore times

As I never use times in task start or due times, I'd like to be able to turn off the way this script sometimes creates times inside dates. There's an example of this in issue #3.

Feature Request: measure repeat interval from @done time

It would be nice if the script added an option to repeat the task with start/due dates measured from the completion time instead of the original start/due times.

Ex: the task
- test @due(2017-10-09) @repeat(+2d)
when completed would become
- test @due(2017-10-09) @repeat(+2d) @done(2017-10-08)
and would repeat as
- test @due(2017-10-10) @repeat(+2d)
instead of
- test @due(2017-10-11) @repeat(+2d)

I hope that makes sense. Maybe this could be accomplished with different @repeat tags, such as @repeatstart and @repeatdone?

With a few tweaks, this script could put TaskPaper at or above the OmniFocus level.

Thanks for your work on this—great script!

repeat-from-done actually repeats from script run time rather than done time

Scenario:

  1. - some task @start(2021-07-19) @due(2021-07-19) @repeat(Monday,Tuesday,Wednesday,Thursday,Friday) @repeat-from-done

  2. Task above gets marked done on 7-19 (tag added: @done(2021-07-19)), but for whatever reason the repeat script isn't run immediately (e.g., maybe the user never launched it, or the task list was marked done outside of TaskPaper).

  3. User opens TaskPaper the next day (7-20) and launches taskpaper-repeat to generate recurrences.

  4. Expected: - some task @start(2021-07-20) ... is created.
    Actual: - some task @start(2021-07-21) ... is created.

Looking at the source code of the script, it appears this is happening around lines 27-29, where the new date is not actually being generated from the "done" date, but from the "now" date. In many cases those will be the same, but if the script is not run at the same time the @done tag is added, they could be entirely different dates.

Appears not to deal with notes

I'm testing this out before adopting it. In this small test case:

- test-note @due(today) @repeat(+1 week) @other @tags @here
This is the note to go with it.

Unfortunately it doesn't work as expected as the new task doesn't have the notes. Minimally, the updated copy of the repeated task could be placed under the completed one, and the notes would move over to it. Though ideally it should be fully duplicated.

Error in date arithmetic?

I think there's a bug that occurs occasionally:

With test task:
- testzzz @due(2019-02-01) @start(2018-12-01) @repeat(+2 months) @done(2019-01-11)
it produces this repeat:
- testzzz @due(2019-04-04 01:00) @start(2019-02-01) @repeat(+2 months)

I was expecting
- testzzz @due(2019-04-01 01:00) @start(2019-02-01) @repeat(+2 months)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.