Subscriptions tracker in TiddlyWiki

hi guys !

has anyone been able to use TW for tracking your subscriptions / recurring bills etc?

basically like a simple but informative table like page - probably rendered from other tiddlers using tags or similar

that would show all of your current subscriptions - name price and renewal date

sorry if I missed it ! but search didn’t reveal this

1 Like

It just keeps slipping down my personal to-do list. I would like to create one, and it doesn’t sound too hard… with the only difficulty being tracking the different sorts of recurrences (the 12th of every month, every Tuesday, third Thursdays, and [a real one I have] third Mondays except for July.) I would look at one of the many calendar plugins to see if they can cover most of your requirements.

1 Like

Hi @realaaa and @Scott_Sauyet

For a calendar, maybe TW-EventCal

For Routine stuff why not Routines - a Tiddlywiki for keeping track of your routines See Routines on Tiddlyhost

Or Is it possible to have tiddlers behave as repeating reminders? - #16 by telumire See Demo

5 Likes

alright I’m not alone with this then :slight_smile:

It would be great to create this one - it is kind of a mix between calendar & a table + reminder possibly (or at least provide a heads up view)

I’ve just updated TiddlyTools/Time/Alarms and TiddlyTools/Time/Calendar.

You can now schedule TiddlyTools Alarms that are automatically triggered (via background “interrupt” timeout handling) either “at startup” (when you open your TiddlyWiki in the browser), or at a specified time of day. This includes alarms that occur:

  • Once, on a given date (e.g., “June 15, 2025 - Jeremy’s Birthday”)
  • Monthly, on the same day each month (e.g., “1st of the month - rent is due”)
  • Monthly, on a specific week and day each month (e.g. “Third Thursday - Club Meeting”)
  • Weekly, on a specific day (e.g., “Every Saturday - Laundry day”)
  • Daily (e.g., “12:00:00 - Lunch Time”)

Existing alarms can be paused/resumed (to prevent them from being triggered), or edited to change their scheduled trigger settings. You can also easily see a “live” countdown that shows how much time remains before an alarm will be triggered by toggling the “preview” (eye) button in the Alarms heading.

… and, as an added bonus, if you are using TiddlyTools Calendar, the alarms will be listed there as well (using the “color bar” at the bottom of each date box). Click on a Calendar date to view the detailed popup for that day.

The only use-case that is not currently handled is the “except for certain days/dates in specific months” (e.g., @Scott_Sauyet 's “third Mondays except for July” use case.)

To see some examples, visit SampleAlarms. To make changes to those Alarms, click the “lock” icon in the Alarms heading.

enjoy,
-e

3 Likes

And of course that is an extremely obscure case. MS Outlook offers the ability to override specific individual instances of a recurring event, but I don’t think it covers this scenario either.

1 Like

yeah what monster company came up with this :sweat_smile:

thank you Eric ! it really looks like all the pieces / components are there

it is probably just needed to draft a vision for UX / features - I’ll try to post some more thoughts on this during tomorrow !

and then of course “only” heavy lifting of actual coding left :smiley:

bumping up - lost this for a bit…

so when I was still using Notion, there was a decent template for it in there

it would build a simple table like this attached - based on individual pages

every entry was its own page - like in our case here every subscription / product would be its own page, and data from it would feed into the table

Hi @realaaa @Scott_Sauyet @EricShulman
A simple/basic starter Subscription Tracker for you to try.
I still think using @EricShulman’s sample alarms is the way to go though.

I have a dynamic table (see package by @mohammadShiraz 2.9.7 — create stylish contents in Tiddlywiki), much like what you screenshot here from Notion, for everything that’s a regular bill in my life, plus every credit card.

(Note, you want to be very careful about any security for any document that includes full account numbers, passwords, and the like!)

The dynamic tables can have a calculated footer row, which is helpful for seeing things like the total balance of credit cards, the total expenses charged quarterly, etc.

Hello @Springer,
I know how much you love Shiraz Dynamic Tables.

I tried to use them for an example for @realaaa’s request but I feel that it takes a lot of time (for me) to create drop-down selects for specific fields etc.

I am sure after using them frequently and creating a collection of alternative templates, which can subsequently be cloned, the development time would be reduced.

Like these example-tiddlers-2.json (9.4 KB)
NB. Updated to include all example tiddlers for drag and drop.

I would be very interested in hearing how you created the dynamic table

and how you use it.

I don’t have much time to reply now, but I’ll confess that I don’t currently have anything like an automatic reminder/alarm system set up, and not much in the way of templates with drop-downs and such.

I just have a dynamic table like this for all credit accounts (and modified variant for utilities, etc.) And because it’s a dynamic table, it’s really easy to sort by “day” (which means day of the month, so that I’m orienting to the day of the month for upcoming payments), or by “balance” (to see where the big balances are) or “rate” or by “modified” (to make sure I’ve updated everything recently).

<<table-dynamic filter:"[tag[credit]]" fields:"tbl-expand title bal day autopay? limit rate end bank notes modified tbl-clone" stateTiddler:"credit_table" footerRows:"1" class:"alternating-rows" caption:"all <$text text={{{[all[tiddlers]tag[credit]count[]]}}}/> items under <<tag>>" >>

… and the footer row has <<sum>> under bal and limit columns.

For routine costs (utilities, insurance, etc.), this variant table:

<<table-dynamic filter:"[all[tiddlers]tag<currentTiddler>]" fields:"tbl-expand title amt x12 x4 x2 auto-pay? notes tbl-clone" footerRows="1">>

(The x12 column is for stuff paid monthly, the x4 for quarterly, the x2 for semi-annual)

Mostly, this works for me as a “console” solution — I can get an easy overview, and I can also toggle into edit mode to update anything without opening up the account-specific tiddlers, and without scrolling away from the big picture.

Also note a lovely convenient feature of dynamic tables here: if a column exists in the dynamic table, when you’re in edit mode you can directly enter values even if the field doesn’t exist yet in the row’s tiddler, and the field is thereby instantly created with the entered value. So when I set up a new account, I tend to add all data (after title and tag) within the dynamic table, which effectively prompts me to add the standard parameters (like the rate details for a credit card, monthly biling date, etc.), and this approach alos safeguards against creating a field incorrectly. Of course I could generate a special edit template for credit cards, but the dynamic table makes this feel unnecessary. The only thing I go to the actual tiddler for is long-form notes (Correspondence about this disputed charge, that customer-service confusion… As of Jan 2025 this bank was bought out by this other one…)

Hello @Springer
Thank you for taking the time to explain your approach and your example of dynamic templates.

I was really surprised to hear that, having seen your previous replies on this forum.

I will try out your examples and look into the calculator footer row etc which I have seen before but have never had to apply it to anything before now.

A really simple thing that I need now is applying alignment (left and top) to table rows.
I think it will be in $:/plugins/kookma/shiraz/templates/body/… or similar ?

Thanks again for your help.

Maybe a Wiki Post like this one by @dongrentianyu would be helpful too.