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:
- Description
- Amount
- Currency — quick-pick (MYR, USD, SGD, EUR, GBP) or type any ISO code
- Category — picked from your category list
- Frequency — Daily / Weekly / Monthly
- Mode — Auto (log on due date) or Manual (pay yourself)
- Account (optional) — picked from your accounts
- Start date — tap "Today" or type YYYY-MM-DD
- 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.
- 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:
| Icon | Meaning |
|---|---|
| ✅ | 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:
- An expense entry is created automatically
- The account balance is deducted (if an account is linked)
- You receive a Telegram notification
- 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.
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:
-
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. -
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.
-
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.
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
/recurringshows the progress: 3/12 paid (9 left)/insightand/reportfixed costs section also shows instalment progress
Natural language also works:
iPhone 15 instalment 189 monthly 12 months
car loan 850 monthly 60 instalments
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
noneto 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.
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
| Plan | Max recurring expenses |
|---|---|
| Free | 0 (not available) |
| Pro | 5 |
| Ultimate | Unlimited |
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.