Skip to main content

Recurring Expenses

Set up expenses that repeat on a schedule — subscriptions, rent, gym memberships — so you never lose track of regular bills.

Two modes: Auto and Manual

When creating a recurring expense, you choose how it's tracked:

  • Auto — the expense is logged automatically on the due date. No action needed from you.
  • Manual — you get a daily reminder when the bill is due, and you mark it as paid yourself. Useful for bills where the exact amount or timing varies, or when you want to confirm each payment.

Adding a recurring expense

The easiest way is natural language:

Netflix 18.90 monthly
gym 150 every month
Spotify 17 monthly
rent 1200 monthly

To create a manual recurring expense, mention it:

add manual recurring Netflix 49.90 monthly
Netflix 49.90 monthly reminder

Or use the step-by-step setup:

/addrecurring

You'll be asked for:

  1. Description
  2. Amount
  3. Currency — quick-pick (MYR, USD, SGD, EUR, GBP) or type any ISO code
  4. Category — picked from your category list
  5. Frequency — Daily / Weekly / Monthly
  6. Mode — Auto (log on due date) or Manual (pay yourself)
  7. Account (optional) — picked from your accounts
  8. Start date — tap "Today" or type YYYY-MM-DD
  9. Instalment plan? — Yes or No. If Yes, enter the total number of payments (e.g. 12 for a 12-month plan). The end date is calculated automatically.
  10. End date — tap "No end date", accept the auto-calculated date, or type YYYY-MM-DD

Viewing recurring expenses

/recurring

Lists all your recurring expenses with status indicators:

IconMeaning
Active (auto) or paid for current period (manual)
📋Due today (manual)
⚠️Overdue (manual)
Paused
Completed (all instalments paid)

Manual items show a Manual tag next to the name. Each item has Edit, Pause/Resume, and Delete buttons.

Instalment items show a progress line: Progress: 3/12 paid (9 left).

When you're in a group, /recurring also shows other members' group-scoped recurring items (but you can only edit or delete your own).

Due-tomorrow reminder

Every day at 07:45 UTC — 15 minutes before auto-pay — Duitbot sends you a heads-up for any recurring expense due the next day:

Due Tomorrow

Expenses: • Netflix — MYR 18.90 • Gym membership — MYR 120.00

This applies to both auto and manual recurring expenses. If you also have recurring income due tomorrow, it's included in the same message.

Auto mode

Every day at 08:00 UTC, Duitbot checks for auto recurring expenses that are due. When one is due:

  1. An expense entry is created automatically
  2. The account balance is deducted (if an account is linked)
  3. You receive a Telegram notification
  4. The next due date is advanced

Month-end handling is smart — e.g. if a recurring expense is set for the 31st, in February it fires on the 28th.

tip

Auto-log is idempotent — if the job runs twice (e.g. after a restart), it won't create duplicate entries.

Manual mode

For manual recurring expenses, here's how it works:

Daily reminders

Every day at 08:05 UTC, Duitbot sends a reminder for any manual recurring expense that is due or overdue. The reminder includes Pay Now and Skip buttons.

Paying a bill

You have three ways to mark a manual recurring expense as paid:

  1. Pay Now button — tap it in the reminder or in /recurring. This creates an expense entry, deducts from your account, and advances the next due date.

  2. Skip button — advances the next due date without creating an expense. Use this if you skipped a payment or paid through a different channel you don't track.

  3. Smart matching — when you log an expense normally (e.g. "netflix 49.90"), Duitbot checks if it matches a pending manual recurring bill. If it does, you'll see a prompt asking if you'd like to mark the recurring as paid. Since the expense is already saved, confirming just advances the due date — no duplicate is created.

note

Smart matching looks at the description, amount, and category. It only triggers for manual recurring items that are currently due or overdue.

Instalment plans

For car loans, phone instalments, BNPL, or any recurring charge with a fixed number of payments, set up an instalment plan:

  • During setup, answer Yes to "Is this an instalment plan?" and enter the total number of payments
  • Duitbot auto-calculates the end date
  • Each payment (Pay Now, smart match, or auto-log) increments the counter
  • When the last instalment is paid, the recurring expense auto-completes — no need to manually delete it
  • /recurring shows the progress: 3/12 paid (9 left)
  • /insight and /report fixed costs section also shows instalment progress

Natural language also works:

iPhone 15 instalment 189 monthly 12 months
car loan 850 monthly 60 instalments
note

Skip does not count as a payment — use Skip only to defer a due date, not to record a payment.

Editing a recurring expense

Tap Edit on any recurring expense to change:

  • Description
  • Amount
  • Currency
  • Category
  • Frequency (daily / weekly / monthly)
  • Mode (auto / manual)
  • Next due date
  • Total instalments — type a number to set (recalculates end date), or none to remove instalment tracking

Category, frequency, and mode changes use an inline picker. Currency shows quick-pick buttons (MYR, USD, SGD, EUR, GBP) or you can type any 3-letter code. Description, amount, next due date, and total instalments are typed in.

tip

You can switch between Auto and Manual at any time using the Edit button. Switching to Auto means Duitbot will start logging expenses automatically from the next due date.

Pausing & resuming

Tap Pause on any recurring expense to temporarily stop it. Paused items won't auto-log or send reminders. Tap Resume to re-enable.

Recurring limits by plan

PlanMax recurring expenses
Free0 (not available)
Pro5
UltimateUnlimited

Subscription tracker

/subscriptions

Shows all your active recurring expenses at a glance, with each item's monthly equivalent cost and a total at the bottom:

📋 Personal — Active Subscriptions & Recurring

Netflix
MYR 18.90/month ≈ MYR 18.90/month

Gym membership
MYR 150.00/month ≈ MYR 150.00/month

Car loan · 48 left
MYR 850.00/month ≈ MYR 850.00/month

Total monthly commitment:
MYR 1,018.90/month

Paused and completed items are excluded. Weekly and daily items are converted to a monthly equivalent (weekly × 4.33, daily × 30). Instalment items show how many payments are left.

Upcoming recurring in AI context

When you ask the bot about your finances (e.g. "how much do I have left this month?"), Duitbot automatically factors in upcoming recurring expenses due in the next 7 days.