---
title: Planner
description: The Planner is the day-to-day home of your budget. Two views, a
  running balance for every account, and a small toolbar for adding items,
  matching transactions, marking events paid, resolving them, or editing one
  event.
subtitle: Where your budget lives day to day.
sidebar:
  order: 20
  section: Day to day
canonical_html_url: https://eb.app/learn/planner/
---

# Planner

The Planner is where you spend most of your time. It shows every upcoming _event_ (one income or expense item, on one specific date) alongside a running balance projected forward for each of your accounts. As real transactions arrive and events resolve into [History](https://eb.app/learn/history-and-undo.md), the projection narrows toward what your bank actually shows.

The Planner is one of the four tabs at the bottom of a budget: **Setup**, **Planner**, **Reports**, **History**. Tap **Planner** to land here. The same data is laid out two ways, which you switch between with the toggle in the top-left of the toolbar:

- **Grid view.** One row per event, with columns of detail and a running balance column for every account.
- **Calendar view.** Those same events placed on a month, week, or day grid.

For the words _item_, _event_, _schedule_, _category_, _transaction_, and _account_, see [Concepts](https://eb.app/learn/concepts.md).

---

## Forecast Period: how far ahead the Planner reaches

The Planner shows events from today forward, up to a horizon you set. The control is the small **1Y / 2Y / 3Y / 4Y / 5Y** button at the top-left of the toolbar (next to the view-mode toggle). Tap it to open the **Forecast Period** dialog and pick **1 Year**, **2 Years**, **3 Years**, **4 Years**, or **5 Years**. The default is **1 Year**.

Each option extends through **December 31 of the matching year ahead**, not exactly twelve months from today. So **1 Year** picked in May lands you at December 31 of next year, about nineteen months out; **5 Years** lands at December 31 five years from now, the maximum. Past History stays available regardless of the setting; the dialog notes this directly.

> **Why does the Forecast Period default to 1 Year?** A shorter forecast loads faster on large budgets, and most planning happens in the next few months. Reach further when you need to: an annual fee a year out, a one-time event a few years from now, or how a savings rate compounds.

The Forecast Period is shared with [Reports](https://eb.app/learn/reports.md). Changing it on either tab changes it for both.

<!-- SCREENSHOT: Forecast Period dialog open over the Planner. The five options "1 Year" through "5 Years" are listed, with "1 Year" checked. Above the list, the explanatory text reads "Controls how far ahead future events and account balances are calculated. A shorter period improves performance." Below it, "Note: History is always available for 5 years in the past." -->

---

## Grid view

<!-- SCREENSHOT: Planner Grid view mid-month. A pay-period header reads "May 1-15" with Income, Expenses, and Net Flow figures on the right. Below it, eight event rows: Paycheck (Income, green), Rent (Expense, paid checkmark), Spotify (Expense), Groceries (Expense, with an inline progress bar showing $63 of $250), Phone (Expense, Auto Pay icon). To the right, a running balance column for "Chase Checking" shows projected values descending across the rows. -->

Each row is one event. The default columns, left to right:

- **Type.** Income, Expense, or Transfer (from the event's category).
- **Category.** The category name.
- **Name.** The item's name. Tracked items also show a thin progress bar with the percent spent so far.
- **Account.** The account the event posts to.
- **Amount.** The planned amount.
- **Due.** The date.
- **Paid.** A checkmark when the event is marked paid.
- **Auto Pay.** An icon when the underlying item has Auto Pay on (a label, not an automation: see [Items](https://eb.app/learn/items.md)).

To the right of these, the Grid renders **one running balance column per account**. The column header shows the account name and its current balance; the cells project that balance forward, one event at a time. A row only fills its account's running balance cell, the others stay blank. Transfer events fill both the source and destination columns.

> **Why per-account columns instead of one combined balance?** Because your bills and your bank are tied to specific accounts. Rent leaves checking, savings interest lands in savings, and a transfer moves money between two of them. A single combined number would smooth those over and make it harder to spot a checking-account dip a week ahead.

### Where the Grid shows that you've changed something

Two cells in the row signal that an event has drifted from its plan, and the Grid keeps the original value visible alongside the new one:

- **A moved date** shows the original date struck through, with the new date below. This appears whenever you drag an event to a different day on the Calendar, change **Pay On** in the **Edit Item Event** dialog, or otherwise reschedule a single event.
- **A tracked item with recorded transactions** shows the planned amount struck through, with a smaller "remaining" figure below. The transactions already moved your account balance when you saved them, so the running balance only has to absorb whatever is left of the planned amount.

Other edits (a one-off name override, an account swap on a single event, a notes change) do not produce a visible flag on the row. To see what's been customised on a specific event, open it with **Edit Event**.

### Headers and grouping

Events are grouped under headers. The default is **Pay Period Headers**, with boundaries derived from your income event dates: a new pay-period header starts at each paycheck. Each header summarises the group with three figures, **Income**, **Expenses**, and **Net Flow**, calculated from the events in that group.

> **Why Pay Period grouping by default?** Most people plan on the rhythm of when money lands, not the calendar month. A pay period starts at your paycheck and ends the day before the next one, so the Net Flow figure on the header reads as "what this paycheck has to cover."

On a phone, headers show only an up or down chevron next to **Net Flow** to save space; tap it to open a popover with the full breakdown.

To pick a different grouping, open **Grid Settings** in the left toolbar and switch to the **Row Headers** tab. Six options:

| Option             | What you see                            |
| ------------------ | --------------------------------------- |
| No Headers         | A flat list of events, no group breaks. |
| Pay Period Headers | One header per pay period (default).    |
| Week Headers       | One header per week.                    |
| Month Headers      | One header per calendar month.          |
| Quarterly Headers  | One header per calendar quarter.        |
| Yearly Headers     | One header per calendar year.           |

Your choice persists across devices, like the rest of your settings.

### Reordering, hiding, exporting

Inside a group, drag a row by its left edge to reorder events. The new order saves immediately and is shared with everyone who has access to the budget. Drag is disabled while a search filter is active in the top header.

To hide columns, change their order, or switch between flex-width and fixed-width sizing, open **Grid Settings**. The dialog has a **Columns** tab with a checkbox per column, a drag handle for reordering, and a **Reset to Defaults** action.

The **Export to Excel or CSV** button, also in the left toolbar, opens an **Export** dialog with **Export to Excel** and **Export to CSV**. Both exports include the columns currently visible, in the order you set, and preserve the group headers as title rows. The export is available on every plan; there is no Premium gate.

---

## Calendar view

<!-- SCREENSHOT: Planner Calendar view in Month layout for May 2026. Each day cell shows up to five event tiles, color-coded by category. Days with more events show a "+2 more" indicator in the corner. The 1st of the month has a Rent tile and a Spotify tile visible; the 15th has a Paycheck tile in green. -->

Same events, laid out on a date grid. Three layouts are available from the picker in the calendar header bar:

- **Month** (default). One cell per day, six rows.
- **Week.** A single row of seven days, more vertical room per day.
- **Day.** One day at a time, with every event for that date visible.

All three are date-grid layouts, not hour-of-day timelines: events sit in the day they belong to, not at a specific time.

### Max events per day

If a day has more events than fits visually, the cell shows a **+N more** indicator. To raise or lower that limit, tap **Max Events Per Day** in the left toolbar (visible in Calendar view only) and pick from **3 events**, **5 events**, **10 events**, **20 events**, **30 events**, or **All**. The default is **5 events**, and the setting is saved to your account, so it follows you to other devices. Week and Day layouts already show enough room that this setting only really matters in Month layout.

### Dragging an event to a new date

Tap and hold an event tile, drag it to another day, drop. The event reschedules to that day immediately, the running balances recompute, and your collaborators see the move within a second. Drag and drop is available to anyone with edit access; viewers can browse but not move events.

You cannot drag a Resolved event in the Calendar because Resolved events are no longer here; they are in [History](https://eb.app/learn/history-and-undo.md). Use Undo from the History tab to bring one back to the Planner.

---

## Toolbar actions (right side)

The right-side actions act on the currently selected event, with two exceptions: **Add Item** does not need a selection, and **Match** opens a dialog that handles many events at once.

<!-- SCREENSHOT: Right-side Planner toolbar with six icon buttons stacked vertically: Add Item, Match, Mark Event as Paid, Resolve item, Edit Event, Delete Event. A selected row in the Grid behind the toolbar is highlighted to show the selection state. -->

| Action                 | What it does                                                                                                                                                                                                                                                             |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Add Item**           | Opens the **Add Item** dialog. Save it, and the new item produces events forward according to its schedule. See [Items](https://eb.app/learn/items.md).                                                                                                                                     |
| **Match**              | Opens the **Match Transactions** dialog. The dialog ingests transactions from a Plaid pull or a file upload and matches each one with the planned event it represents. See [Matching and Resolving](https://eb.app/learn/matching-and-resolving.md) for the gating rules and the full flow. |
| **Mark Event as Paid** | Toggles the selected event between **Scheduled** and **Paid**. The event stays on the Planner; your account balance does not change.                                                                                                                                     |
| **Resolve item**       | Closes the selected event and sends it to History. Your balance moves by the event's planned amount, unless transactions on the event have already moved it.                                                                                                             |
| **Edit Event**         | Opens the **Edit Item Event** dialog for one specific event.                                                                                                                                                                                                             |
| **Delete Event**       | Removes the event from the Planner and writes a Deleted record to History. Your balance does not change.                                                                                                                                                                 |

For the full state-by-state mechanics (when an event auto-resolves, what each path does to your account balance, how Undo works), see [Matching and Resolving](https://eb.app/learn/matching-and-resolving.md).

### When the Match button is hidden or locked

The Match button can be in one of three states:

- **Available.** Budget owners can use it on any plan. Editors can use it on a non-Plaid budget when their account has Premium features.
- **Greyed out** with the label flipped to **Requires premium or owner access**. You are an editor on a free account, on a non-Plaid budget. Either upgrade to Premium, or ask the budget owner to run Match.
- **Hidden entirely** from the toolbar. The budget is linked to a bank through Plaid and your account is not Premium. Plaid sync requires Premium, and a Plaid-linked budget cannot be updated through file upload either, so the button does not appear at all on this budget for you. The owner can still use it.

If you only have read access, **Resolve item** shows **Read-only access - cannot modify**.

The fuller explanation, including what Premium adds to the matching flow and what changes when Premium ends, lives in [Matching and Resolving](https://eb.app/learn/matching-and-resolving.md#who-can-use-match).

### When Resolve asks first

If the selected event belongs to an item with **Transaction Tracking** on, and no transactions have been recorded yet, **Resolve item** opens a confirmation titled **No Transactions Recorded**. You can pick **Add Transaction** to open the event and record one first, or **Resolve Anyway** to close it as planned. The confirmation only appears for tracked items with no transactions; tracked items with at least one transaction, and non-tracked items, resolve directly.

---

## Editing one event versus editing the item

There are two scopes of edit, and the right one depends on whether the change should apply to one event or every future event.

- **Edit the item template** when the change applies forward. Rent went up to $1,900 from next month onward: open the item from [Items](https://eb.app/learn/items.md), change the amount, save. Every future event reflects the new amount.
- **Edit the event** when the change applies only to one event. Your paycheck arrived a day late this period, or rent was waived for a single month: select the event, tap **Edit Event**, change the amount or date, save. The original date or amount stays visible, struck through, on the row.

> **Why doesn't editing one event change every future event?** Because the schedule is the template, and the events are what the template generates. A one-off change writes a per-event override on top of the template; the template, and every other event from it, is untouched. So your "rent waived this month" stays one month only, and your other already-customised events are not disturbed when you later change the schedule itself.

Tapping **Edit Event** opens the **Edit Item Event** dialog. If you only have read access, the dialog opens as **View Item Event** with the same fields displayed but no inputs.

The fields:

- **Name.** The label that appears on the event row. Defaults to the item's name.
- **Amount.** The planned amount for this event.
- **Pay On.** The date this event is scheduled for.
- **Category.** Locked at the event level. To change a category, edit the item.
- **Account** (or **From Account** and **To Account** for a Transfer item). The account this event posts to.
- **Status.** Drop-down with **Scheduled**, **Paid/Spent**, and **Resolved**. Picking **Resolved** and saving closes the event and writes a History row, the same as tapping **Resolve item** in the toolbar.
- **Notes (optional).** Free-form text for context.

A **Go to parent item** link at the top of the dialog jumps to the item template if you decide the change should apply forward instead.

### Transactions inside an event (Transaction Tracking items only)

If the event's item has Transaction Tracking on, the dialog also shows a **Transactions** section: a progress bar that compares the running total to the planned amount, and a list of individual transactions you can add, edit, or delete. Each transaction has a **Date**, an **Amount**, and an optional **Description**. Up to 500 transactions per event. Transactions move your account balance the moment they are saved, so the figures in the Planner stay in step with the bank.

The full mechanics of how a tracked item resolves once its transactions accumulate are covered in [Matching and Resolving](https://eb.app/learn/matching-and-resolving.md).

<!-- SCREENSHOT: Edit Item Event dialog open for a tracked Groceries event. Name "Groceries", Amount $250.00, Pay On 2026-05-07, Account "Chase Checking", Status "Scheduled", Notes empty. Below those, a "Transactions" section header with a progress bar reading "$63.41 of $250.00 (25%)" and one transaction row dated 2026-05-04 for $63.41. -->

---

## How an event's state evolves

An event begins as **Scheduled**. From there:

- **Mark Event as Paid** flags it as paid for your reference. The checkmark appears in the Paid column. The account balance is unchanged. The event stays on the Planner. Tap the same button again to flip it back to Scheduled.
- **Resolve item** (or setting Status to **Resolved** in the modal) closes the event and sends it to History, with the balance change applied. The event leaves the Planner.
- A successful **Match Transactions** session can resolve an event for you when a real bank transaction is matched with it.
- **Delete Event** removes the event from the Planner and writes a Deleted row to History. The balance is not touched.

Mark Event as Paid is the only one of these that does not write to History. Every other action puts a row on the History tab with an **Undo Action** button.

For the precise definitions of Scheduled, Paid, and Resolved, the three paths to Resolved, and what each path does to your running balance, see [Matching and Resolving](https://eb.app/learn/matching-and-resolving.md). For everything that ends up in History (and how to reverse it), see [History and Undo](https://eb.app/learn/history-and-undo.md).

---

## Quick reference

| If you want to                                       | Do this                                                                                                                |
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| See events as rows with balance columns              | Switch to **Grid** view (top-left toolbar toggle).                                                                     |
| See events on a date grid                            | Switch to **Calendar** view. Pick **Month**, **Week**, or **Day** in the calendar header bar.                          |
| Reach further forward than a year                    | Tap the **1Y** button in the toolbar; pick up to **5 Years**.                                                          |
| Add a new recurring line                             | Right toolbar, **Add Item**.                                                                                           |
| Mark a bill paid before the bank shows it            | Select the event, tap **Mark Event as Paid**.                                                                          |
| Close an event with no bank transaction              | Select the event, tap **Resolve item**. It asks for confirmation first if the item is tracked and has no transactions. |
| Edit just this event                                 | Select the event, tap **Edit Event**.                                                                                  |
| Edit every future event                              | Open the item from [Items](https://eb.app/learn/items.md).                                                                                |
| Move an event to a different date                    | Calendar view, drag the tile. Or open **Edit Event** and change **Pay On**.                                            |
| Reorder rows in a period                             | Grid view, drag the row. Order is shared with collaborators.                                                           |
| Hide or rearrange columns                            | Grid Settings (left toolbar), Columns tab.                                                                             |
| Change how rows are grouped                          | Grid Settings, Row Headers tab.                                                                                        |
| Export the Grid                                      | Left toolbar, **Export to Excel or CSV**. Pick **Export to Excel** or **Export to CSV**.                               |
| Match a batch of bank or file transactions to events | Right toolbar, **Match**. See [Matching and Resolving](https://eb.app/learn/matching-and-resolving.md) for who can use it.                |
| Delete an event                                      | Select it, tap **Delete Event**. The Deleted row appears on the History tab with **Undo Action**.                      |

---

## Behind the scenes

A few mechanics happen below the surface of the Grid and Calendar that explain things you may notice.

**The forecast horizon is anchored to the end of a year.** When you pick "1 Year," the Planner generates events through December 31 of next year. So picking "1 Year" in May reaches further than picking it in November. The maximum is December 31 five years out (the "5 Years" option), the same five-year span [Reports](https://eb.app/learn/reports.md) uses for past navigation.

**Schedules clamp to the end of short months.** A monthly schedule on the 31st falls back to the 28th in February (the 29th in leap years), the 30th in April, and so on. A schedule set to "last day of the month" is treated the same way: it always lands on the last day, whatever that day is. A February-29 schedule lands on February 29 in leap years and on February 28 otherwise.

**Daylight saving time does not move events.** Dates are stored at noon UTC under the hood, far enough from any timezone boundary that a spring-forward or fall-back never advances or retreats an event by a day.

**The running balance recomputes on every change.** Adding a transaction inside an event, dragging an event to a new day, completing a Match session, resolving or deleting an event, switching the Forecast Period, or a collaborator's edit landing through the live sync, all recompute the projection on the fly. You do not need to refresh.

**Tracked-item transactions move balance at insert, not at resolve.** That is why a tracked event on the Grid shows the planned amount struck through with a smaller "remaining" figure: your bank balance has already absorbed the transactions you recorded; the projection only has to absorb whatever is left of the budget. When the transactions add up to the planned amount, the event resolves on its own and leaves the Planner. See [Matching and Resolving](https://eb.app/learn/matching-and-resolving.md) for the threshold rule.

---

## Related pages

- [Concepts](https://eb.app/learn/concepts.md): the words _item_, _event_, _schedule_, _transaction_, _category_, and _account_ defined once.
- [Items](https://eb.app/learn/items.md): the templates that produce events on the Planner.
- [Matching and Resolving](https://eb.app/learn/matching-and-resolving.md): the full lifecycle of an event, the three paths to Resolved, and what each path does to your balance.
- [History and Undo](https://eb.app/learn/history-and-undo.md): where resolved and deleted events live, and how to reverse them.
- [Reports](https://eb.app/learn/reports.md): charts of what the Planner shows, summarized over time. Reports also share the Forecast Period control.

---

## About this document

This is a markdown mirror of [https://eb.app/learn/planner/](https://eb.app/learn/planner/).
The HTML version is the canonical form. This file exists so AI/LLM
tools can ingest the content without HTML parsing.
