---
title: "Build an annual subscription renewal calendar with your AI agent"
description: "Find every yearly and quarterly charge in your bank history, turn them into a 12-month renewal calendar, and get a heads-up before each one bills."
slug: "subscription-renewal-calendar-with-an-ai-agent"
url: "https://bankbridge.money/guides/subscription-renewal-calendar-with-an-ai-agent"
category: "use-case"
published: "2026-10-02"
updated: "2026-10-02"
---
# Build an annual subscription renewal calendar with your AI agent

> Connect your bank and cards to an agent with BankBridge, then ask it to find recurring charges across the last 24 months and keep the yearly, semiannual, and quarterly ones. Have it list each with the last charge date, amount, and expected next date, sorted by month. Save that calendar and ask each month what renews in the next 60 days.

## Why annual renewals slip through

A $12 monthly charge shows up on every statement. A $99 annual charge shows up once, eleven months after you last thought about it, often on a card you rarely check. Domain names, antivirus, cloud storage, memberships, software licenses, insurance paid in full, and app store annual plans all work this way. The fix is a calendar built from what you were charged, not from memory.

## 1\. Find every non-monthly charge

Connect checking and every card at [bankbridge.money](https://bankbridge.money/login) and add BankBridge to your agent ([Claude](https://bankbridge.money/docs/claude-web), [ChatGPT](https://bankbridge.money/docs/chatgpt), [Claude Code](https://bankbridge.money/docs/claude-code)). Then ask:

> “Find recurring charges over the last 24 months across all my accounts. Keep only the ones billed yearly, every six months, or quarterly. For each, give me the merchant, amount, last charge date, and which account it bills.”

The agent calls `get_recurring_charges` with a 24-month window. The default window is six months, which is too short to see annual patterns, so the date range in the prompt matters.

## 2\. Catch first-year renewals

A subscription you started 11 months ago has billed once. Pattern detection cannot see it yet. Ask for candidates directly:

> “List charges over $20 from 9 to 13 months ago from merchants that have not charged me since. Skip airlines, hotels, restaurants, and stores. I want things that look like an annual plan.”

The agent uses `list_transactions`with a minimum amount and date range, then filters. Review the list yourself; a one-time purchase and a first-year plan look the same from the bank's side. If a merchant changed its billing name between years, the two charges can look unrelated; see [catching renamed billing descriptors](https://bankbridge.money/guides/catch-renamed-subscription-descriptors).

## 3\. Turn it into a calendar

Combine both lists:

> “Build a renewal calendar for the next 12 months. Project the next date from the last charge date and cadence. Group by month, show the monthly total, and flag any month over $200.”

```
Renewal calendar: Oct 2026 to Sep 2027

November 2026                           $218.98
  Nov 04  Domain registrar          $ 24.99   card 1190
  Nov 19  Cloud storage (annual)    $ 99.99   card 1190
  Nov 27  Antivirus                 $ 94.00   checking 4821   FLAG

February 2027                           $ 59.00
  Feb 11  Warehouse club membership $ 59.00   card 7734
...
```

Save it where your agent can find it next month: a [Claude Project](https://bankbridge.money/guides/claude-projects-for-personal-finance) file, a `renewals.md` in your Claude Code folder, or an .ics file imported into your calendar app.

## 4\. Check what is coming up

At the start of each month:

> “Using my renewal calendar, what renews in the next 60 days? Check my recent charges for each merchant in case the date or price changed, and tell me whether my checking balance covers the ones that bill there.”

The agent checks each merchant with `get_merchant_history` and your balance with `list_accounts`. In Claude Code, `/price-creep` adds a 12-month price comparison for every recurring charge.

## 5\. Decide before it bills

-   **Still using it?** Cancel now if not. Many annual plans do not refund after renewal.
-   **Did the price go up?** Compare the last two charges. See [catching price increases](https://bankbridge.money/guides/catch-subscription-price-increases-with-an-agent).
-   **Big month ahead?** Set money aside monthly so November is not a surprise. See [sinking funds with an agent](https://bankbridge.money/guides/sinking-funds-with-an-ai-agent).

Ready? [Connect your accounts](https://bankbridge.money/login) ($5 per month per bank) and ask your agent for every annual charge from the last two years.

## FAQ

### Why does my agent miss some annual subscriptions?

Recurring detection needs at least two charges to see a pattern. A yearly charge only appears twice in a 24-month window, and a subscription in its first year appears once. Widen the window to 24 months, then search separately for single large charges from about a year ago.

### Can the agent cancel a subscription before it renews?

No. BankBridge is read-only. The agent tells you what renews, when, and for how much. You cancel with the merchant, usually in the account settings on their site or in your app store subscriptions.

### Will subscriptions billed through Apple or Google show up?

They show up as charges from Apple or Google on the card linked to your app store account, often several bundled under one descriptor. The agent can see the amounts and dates, but not which app each one is for. Check the app store's subscription list for the names.

### Can I get the calendar into Google Calendar or Apple Calendar?

Yes. Agents that write files, like Claude Code or Claude Cowork, can save an .ics file you import. In the chat apps, ask for the .ics text in a code block and save it as a file.

### How far back should I look?

Use the full 24 months BankBridge provides. Twelve months catches each annual charge once; 24 months catches it twice, which lets recurring detection confirm the pattern and shows whether the price went up.
