The first thing I wrote when I switched to ledgerbil was a scheduler for recurring transactions:
https://github.com/scarpent/ledgerbil#--schedule Ledgerbil can be tied to my own ledger usage in many ways, but the scheduler is one of the things that should be usable by any ledger user. :-) On Friday, August 31, 2018 at 2:17:59 PM UTC-5, Gavin Hughes wrote: > > I'm starting work on ledger-recur shown below (and prettier in this gist > <https://gist.github.com/gavinhughes/32e80a57fa666ac691db8271914a407d>). > I see this topic gets discussed occasionally. Does anything like this > already exist? Is this useful to anyone else? Any suggestions from > improvement before I start work on it? > > - Gavin > --- > https://gist.github.com/gavinhughes/32e80a57fa666ac691db8271914a407d > > #+Title:Ledger Recur > > Ledger Recur provides automated entry of recurring transactions into > ledger files. > > The command `recur journal.ledger recurring.rcr` enters all recurring > transactions specified in the file `recurring.rcr` into the file > `journal.ledger`. > > A recur file is parsed before transactions are entered into a ledger file. > If erorrs are found, they are reported and no transactions are entered. > > * Recur file syntax > > ** Transactions > > #+BEGIN_SRC > Payee > /recurrence/ /[end_date]/ > /last_applied_date/ > [Remaining lines applied verbatim] > #+END_SRC > > *** Example > > #+BEGIN_SRC > Dropbox > 1M22 E2018/12/31 > 2018/08/30 > ; d: Pro subscription > ; :recur: > software $10 > #+END_SRC > > ** Recurrence syntax > > | Interval | Interpreted as | > |-----------------------+----------------------------------------------| > | 1W1,3,5 | Every week on Mon, Wed, Fri. | > | 2W5 | Every two weeks on Fri. | > | 1M22 | Every 1 month on the 22nd. | > | 1M1,15 | Every 1 month on the 1st and 15th. | > | 1Mw7 | Every 1 month on the first Sun. | > | 1Y01/08 | Every 1 year on Jan-08. | > | /interval/ E2018/01/08 | The recur terminates on 2018/01/08. | > > * Command line syntax > > recur /ledger_file/ /recur_file/ > > If a recur file is not supplied, recur will look for a file with the same > name as the ledger file but with an added extension of `.rcr`. > > Example, > > #+BEGIN_SRC > recur main.ldg > #+END_SRC > > expands to > > #+BEGIN_SRC > recur main.ldg main.ldg.rcr > #+END_SRC > > ** Options > > | -d | --dry-run | Simulate but do not enter transaction. Reports errors > and warnings. | > > Ledger Recur provides automated entry of recurring transactions into > ledger files. > > The command `recur journal.ledger recurring.rcr` enters all recurring > transactions specified in the file `recurring.rcr` into the file > `journal.ledger`. > > A recur file is parsed before transactions are entered into a ledger file. > If erorrs are found, they are reported and no transactions are entered. > > * Recur file syntax > > ** Transactions > > Payee > Recurrence /end_date/ > Last_applied_date > [Remaining lines applied verbatim] > > *** Example > > Dropbox > 1M22 E2018/12/31 > 2018/08/30 > ; d: Pro subscription > ; :recur: > software $10 > > * Recurrence syntax > > | Impl | Example | Interpreted as > | > > |------+-----------------------+----------------------------------------------| > | | 1W1,3,5 | Every week on Mon, Wed, Fri. > | > | | 2W5 | Every two weeks on Fri. > | > | | 1M22 | Every 1 month on the 22nd. > | > | | 1M1,15 | Every 1 month on the 1st and 15th. > | > | | 1Mw7 | Every 1 month on the first Sun. > | > | | 1Y01/08 | Every 1 year on Jan-08 > | > | | /interval/E2018/01/08 | Every 1 year on Jan-08, ending on > 18-Jan-08. | > | | | > | > > * Command line syntax > > recur /ledger_file/ /recur_file/ > > Example: recur dauin.rcr main.ldg > > If a recur file is not supplied, recur will look for a file with the same > name as the ledger file with the addition of ".rcr". > > Example, recur main.ldg expands to recur main.ldg main.ldg.rcr. > > ** Options > > | -d | --dry-run | Simulate but do not enter transaction. Reports errors > and warnings. | > > -- --- You received this message because you are subscribed to the Google Groups "Ledger" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
