Forward receipts, snap photos, or let Gmail auto-scan. Your data stays in YOUR Google Drive.
Join 2,500+ businesses already saving hours every month
You'll sign in with Google next — takes 30 seconds, read-only access.
Start Free 60-Day Trial →No credit card required
This short video shows you everything you need to get started with ExpenseBot — how to capture receipts (email, photos, PDFs, Gmail), create a report, and share it with your accountant or finance team so they can import it into their accounting system.
Watch the Quick Start video:
How do I configure ExpenseBot settings?
The Agent Configuration page lets you customize how ExpenseBot works for you — set up email preferences, configure automation settings, and personalize your expense tracking workflow.
Take a few minutes to configure ExpenseBot when you first sign up, and the AI will handle expense tracking exactly the way you need it. Most settings can be changed anytime as your needs evolve.
How do I add custom G/L codes for my accountant?
Some companies require expenses to be submitted with specific accounting codes (G/L codes). Add your G/L codes to ExpenseBot and it will automatically categorize your expenses into the right accounts — so they're in perfect shape when you submit them to your accounting team.
Do I need a Gmail account to use ExpenseBot?
You need a Google account to sign in. This can be a Gmail address, a Google Workspace account, or any email linked to Google.
Google Workspace users: Just sign in — you're already set.
Don't have a Google account? Create one with your existing email at the Google Account Sign‑up page — choose "Use your existing email."
Do I need an app?
No — just sign in at https://www.expensebot.ai
Try ExpenseBot free for 60 days. See why thousands of businesses trust us with their expenses.
Start Free Trial →See how freelancers use ExpenseBot:
Once invited, each member of your team can use ExpenseBot to capture and submit expenses under their own company domain. No separate accounts needed — your team simply logs in with their existing Google Workspace credentials.
See the complete workflow from purchase to approval:
See how accountants streamline expense management:
See how investment managers automate expense compliance:
See how real estate agents track expenses and mileage:
Can I use ExpenseBot to track wedding expenses?
Yes — and we built a dedicated wedding flow that goes well beyond a single "Wedding" bucket. When you type a wedding description into the AI tag wizard (Settings → Manage Tags → ✨ Create a Tag with AI), it detects wedding intent and creates five tags at once:
Every future receipt sorts itself automatically. Existing receipts from the last 90 days are retroactively tagged too.
Tracking who paid: Add paidby:bride (or groom, bride's family, groom's family) to the subject line when forwarding a receipt. ExpenseBot stamps "Paid by Bride" into the Notes column — without touching the category tag, so your budget totals still roll up cleanly. Or link a second Gmail (bride@gmail.com) as an alias under Settings and attribution is automatic — no subject-line typing needed.
Dedicated Wedding Budget Report: once you're tagged for wedding tracking, a specialized report appears on My Reports — budget vs actuals by vendor category, top vendors per tag, deposit/final-payment pairing, a monthly burn chart oriented around your wedding date, and a Paid-By split flagging who over- or under-paid vs the ratio you set (50/50, 60/40, etc.).
Generic reports: Go to My Reports → Create Report → Report by Tag and pick all five "Wedding –" tags for a per-category breakdown. Filter the Notes column in your spreadsheet to split costs by payer.
The same approach works for any life event: home renovation, baby expenses, moving costs, or an anniversary trip.
Can I use ExpenseBot to track realtor or real estate agent expenses?
Yes — and we built a dedicated realtor flow that maps cleanly to IRS Schedule C. When you type a realtor description into the AI tag wizard (Settings → Manage Tags → ✨ Create a Tag with AI), it detects real estate agent intent and creates five tags at once:
Every future receipt sorts itself automatically. Existing receipts from the last 90 days are retroactively tagged too.
Schedule C at tax time: each tag maps to a specific Schedule C line — MLS to lines 15 & 23 (Insurance, Taxes & licenses), Gifts to line 27a, Listings to line 8 (Advertising), CE to line 17 (Legal & professional), Tech to lines 18 & 22 (Office expense, Supplies).
Three specialized reports for realtors: once you're tagged as a realtor, three dedicated reports appear on My Reports — Realtor Commission P&L (full-year profit & loss with net commission), Realtor Schedule C Preview (USA) / T2125 Preview (Canada) mapping each "Realtor –" tag to the exact tax line, and Realtor Gift Limit Checker that audits your "Realtor – Gifts" spending against the IRS §274(b) $25/client/year cap and CRA equivalents — flagging over-limit clients before your accountant does.
Mileage stays in ExpenseBot's dedicated mileage tracker and maps to Schedule C Line 9 — no separate realtor mileage tag needed.
Does ExpenseBot warn me about the IRS $25 gift limit per client?
Yes. The Realtor Gift Limit Checker report audits your gift spending against IRS §274(b) and CRA limits and flags every recipient at risk of having gifts disallowed at audit.
How it flags: USA users see recipients sorted by year-to-date total — 🟢 under $25 fully deductible, 🟡 at limit, 🔴 over with the non-deductible excess broken out separately. Canadian users see the reasonableness flag at $500 CAD instead.
How it identifies the recipient: ExpenseBot checks four sources in order — (1) tag sub-name (Realtor – Gifts – Alice Johnson uses Alice Johnson), (2) Notes column (Paid for Alice or For: Alice), (3) merchant name as fallback (flagged with ?), (4) Unassigned. The easiest way to add a recipient is paidfor:Alice Johnson in the email subject when forwarding the receipt.
The report scans any tag whose name ends in Gifts — Realtor – Gifts, Client Gifts, Wedding – Gifts, or generic Gifts — and shows a "tags scanned" count up front so you can confirm your gift receipts are being included. Catches over-limit clients before your accountant does.
Can I track client-rebillable expenses for my marketing or PR agency?
Yes — ExpenseBot has a dedicated agency flow for marketing, PR, ad, and creative agencies that bill expenses back to named clients. The convention is simple: tag receipts with Client – <Name> (e.g., Client – Acme Corp, Client – Global Media). The AI tag wizard detects "agency" intent — type something like "ad spend for Acme Corp" or "Canva subscription for client work" and it creates the right Client – tag automatically. From then on, any receipt mentioning that client in the merchant, subject, or notes auto-tags to the right partition.
Three specialized reports for agencies: once you have any Client – tag, three dedicated reports appear on My Reports — Agency Per-Client P&L (profitability broken down per client; flags negative-margin clients where passthrough + time > billed retainer), Agency Passthrough Reconciliation (ad spend paid on behalf of clients — Meta, Google, LinkedIn Ads — vs what was billed back; catches missed rebills before month-end close), and Agency Schedule C Preview (USA) / T2125 Preview (Canada) with year-end tax form previews mapped to agency-specific expense lines (client passthrough, ad spend, tools, meals with clients).
Works for sole-prop agencies (Schedule C) and incorporated agencies (LLC/Inc with T2125 or separate corporate return). Receipts for your own overhead (software, office supplies, staff meals) stay in the normal expense categories — only client-specific spend gets the Client – tag, so your own P&L and each client P&L stay cleanly partitioned.
Can I track rental property expenses per property for IRS Schedule E?
Yes — ExpenseBot has a dedicated rental property flow for landlords. Go to Settings → Rental Properties and add each of your properties (nickname, street address, purchase date, rental %). ExpenseBot creates a tag for each one (Prop – Brooklyn duplex, Prop – Queens condo, etc.).
Auto-tagging: receipts that mention a property address in the subject or body auto-tag via deterministic street-number + street-name matching — no Gemini guessing, no false positives. If you have two properties on the same street (123 Main and 127 Main), the exact street number disambiguates. Rent deposits detected by our Gmail income scanner match the same way, so both sides of the per-property P&L come together automatically.
Schedule E report: run My Reports → Schedule E Rental and get a Google Sheet with IRS Schedule E line layout per property — Advertising, Cleaning & Maintenance, Insurance, Management Fees, Repairs, Taxes, Utilities, HOA/Condo Fees — plus manual-entry fields for mortgage interest (from your 1098) and depreciation.
House hack / owner-occupied: set Rental % to the portion actually rented (e.g., 50% for half a duplex). The report prorates shared expenses automatically.
Three new Expense Accounts (Cleaning and Maintenance, Property Management Fees, HOA and Condo Fees) are added to your spreadsheet on first property setup so nothing is ambiguous at tax time. Works for any portfolio size, from 1 property to 20+.
Does ExpenseBot track rental property expenses per property?
Yes. ExpenseBot tracks rental property expenses per property (not lumped as one "rental" category). Add each property in Settings → Rental Properties with an address and rental %, and receipts with that address auto-tag to the right property. At tax time, ExpenseBot generates Schedule E (US) or T776 (Canada) worksheets with one section per property, ready for filing. See /rental-property-tracker.
Does ExpenseBot support Canadian T776 rental reports?
Yes. ExpenseBot generates T776 Statement of Real Estate Rentals worksheets for Canadian landlords, with gross rents on Line 8141, expenses mapped to Lines 8521 (advertising), 8690 (insurance), 8710 (interest), total expenses on Line 9369, and net income/loss on Line 9946. US landlords get Schedule E worksheets. One T776 per property, as CRA requires. See /rental-property-tracker.
Does ExpenseBot work for office managers handling team receipts?
Yes. ExpenseBot is designed for office managers and personal assistants at small offices (3-20 people). Your team forwards receipts to a shared alias or lets Gmail auto-scan catch them, and you review everything in one Google Sheet. Export to QuickBooks, Xero, Sage, or Wave in one click. No IT setup required — any Google Workspace account can onboard in 10 minutes. See /office-manager.
How do I set up my executives in ExpenseBot?
As an executive assistant, you can add and manage multiple executives from your ExpenseBot account. Set up their email addresses, configure Gmail scanning, and start capturing their expenses immediately.
How do executives sign in after being invited?
Once you invite an executive, they receive an email with instructions to sign in. Executives can then view their expenses, review reports you've prepared, and approve them — all without needing to capture receipts themselves.
How do I submit receipts I receive by email?
You can easily forward any receipt emails to ExpenseBot. Simply forward your email to receipts@expensebot.ai and ExpenseBot will automatically process:
All forwarded receipts will automatically appear in your ExpenseBot spreadsheet:
How do I add expenses without a receipt?
For cash expenses or when you don't have a receipt, send an email to receipts@expensebot.ai with cash: at the start of the subject line, followed by the amount, description, and optionally a date.
cash: $45 Ubercash: $12.50 Starbucks coffeecash: $200 office suppliescash: $1200 rent with $25 taxescash: $85 dinner with $12 tax and $15 tipTax and tip are included in your total — $1200 with $25 taxes means your total is $1200, not $1225.
cash: $50 lunch yesterdaycash: $200 groceries last fridaycash: $1200 rent for marchcash: $1200 rent for march 1 2025If you don't include a date, today's date is used.
cash: $50 lunch, $30 gas, $20 parkingcash: $12 coffee, $65 dinner, $25 Ubercash: $1200 rent each month this yearcash: $1200 rent and $25 taxes each month this yearcash: $1200 rent for the past 4 monthscash: $1200 rent for march, april, and maycash: $50 cleaning every week for the past monthRecurring expenses will never be created for future dates.
Each expense is automatically categorized by AI, tagged as "No Receipt", and added to your spreadsheet. You can put details in the subject line, the email body, or both.
Can I forward receipts from another email address?
Yes. Add it as an Email Alias in Settings. If most receipts arrive at the Gmail you signed up with, you can skip this.
Why am I getting "Undeliverable" or "Access denied" when forwarding from Outlook/Microsoft 365?
If you receive an error like 550 5.7.520 Access denied, Your organization does not allow external forwarding, your company's Microsoft 365 admin has blocked external email forwarding as a security policy.
receipts@expensebot.ai as an allowed external forwarding destinationYour IT admin can find the setting in Microsoft 365 Admin Center → Exchange → Mail Flow → Remote Domains, or via PowerShell using Set-RemoteDomain.
How can I import receipts from my Gmail inbox?
Connect Gmail and let the AI find receipts automatically — no forwarding rules required:
Can I scan a second Gmail account for a full year of receipts?
Yes! Connect up to 5 Gmail accounts and run a historical scan on each — perfect for pulling a full year of receipts at tax time.
The scan processes in the background so you can close the page. When it finishes, you get an email showing exactly what was found.
How does the Gmail scanner decide which emails to pick up?
The scanner uses multiple layers to find your receipts automatically — no setup or rules needed:
You don't need to add senders or set up keyword rules — the more receipts you process, the smarter the scanner gets for your account. If something is still being missed, apply the "ExpenseBot" label to the email in Gmail and the scanner will pick it up and learn from it.
Want to make sure receipts from a specific merchant always get picked up? Use Gmail's built-in filters to auto-apply the "ExpenseBot" label to emails from that sender (e.g., auto-confirm@amazon.ie). The scanner will pick them up on every scan — no manual labeling needed.
How to set it up: In Gmail, click the search bar filter icon, enter the sender's email in "From", click Create filter, then choose Apply label "ExpenseBot".
Does the scanner look through archived emails?
It depends on the scan type:
In both cases, once an email has been processed it's excluded from future scans — so nothing gets duplicated.
What if the Gmail scan missed a receipt?
It's rare — the scanner already searches for receipt-related keywords across all senders — but some emails can still be misclassified by the AI. For example, order confirmations with "not yet charged" disclaimers may be skipped. Here's what to do:
Processing a missed receipt teaches the AI to recognize that sender going forward — future emails from them will be included in scans automatically.
Please also let us know at support@expensebot.ai so we can investigate and improve the detection for everyone.
Can I exclude certain merchants or categories from my Gmail scan?
Yes. Exclusion rules let you skip specific merchants or expense categories during Gmail scans — matching receipts are never written to your spreadsheet.
Excluded receipts are labeled ExpenseBot-Excluded in Gmail for a transparent audit trail. Your scan confirmation email shows exactly what was excluded and which rule matched. Nothing is deleted — the original email stays in your inbox.
Note: Exclusions only apply to Gmail scans. If you manually upload a photo or PDF receipt, it always goes through — deliberate uploads reflect explicit intent.
How do I take a photo of a receipt and submit to ExpenseBot?
How can I import photos of receipts from Google Photos?
ExpenseBot makes it easy to find and import receipts directly from Google Photos:
How do I import screenshots and images from my device?
If you have screenshots, saved images, or other receipt photos stored directly on your device (not in Google Photos), you can import multiple images at once:
How do I import multiple PDFs from my device?
Can I import receipts from Google Drive?
Yes! Click the Google Drive button in ExpenseBot to open the Drive Picker. Browse or search your Drive, select up to 100 receipt files at once, and AI processes them all automatically.
ExpenseBot only accesses the specific files you select — it uses Google's secure drive.file scope, not full Drive access. Your other Drive files are never touched.
How do I scan receipts from my iPhone camera roll?
Open expensebot.ai in Safari on your iPhone, sign in with Google or Apple, and tap Upload. Safari opens iOS's native photo picker.
ExpenseBot runs entirely in Safari. iCloud Photos appear in the picker automatically because iOS syncs them to the camera roll. For a native-app feel, use Safari's "Add to Home Screen" — you get a home-screen icon and full-screen UX without the App Store.
Learn more: iPhone Receipt Scanner
How do I scan receipts from my iPhone with the Apple Shortcut?
ExpenseBot ships a free "Scan Receipts" Apple Shortcut. Install it in under 2 minutes:
Any device running Shortcuts (iOS 14+, iPadOS 14+, macOS Monterey+). Install once via iCloud — syncs across all your Apple devices automatically.
Files accepted: JPEG, PNG, HEIC, WebP, PDF (up to 15 MB each). Also triggerable via Siri ("Hey Siri, Scan Receipts").
Can I download all my receipts as a ZIP file for HSA/FSA/PHSP upload?
Yes — every ExpenseBot report has a one-click "ZIP (Receipts)" download alongside CSV / XLSX / PDF. Available on HUD Medical, CRA Medical, HSA/FSA, PHSP, and regular expense reports.
The ZIP contains:
001_2026-02-14_Shoppers_Drug_Mart_47.99.pdfindex.csv — maps every filename to date / vendor / amount / expense-type / notes with per-row success/fail statusREADME.txt — admin-specific upload instructions for your HSA/FSA provider (WageWorks, HealthEquity, FSAFEDS, Optum, Lively, Fidelity; Olympia Benefits, Benecaid, myHSA, Simply Benefits for Canada)Streams from Drive → browser without buffering — 100+ MB bundles work fine. If a receipt was deleted from Drive, it's marked FAILED in index.csv and the rest of the ZIP completes (never all-or-nothing).
How do I claim the CRA medical expense tax credit?
Enter eligible expense totals on Line 33099 (self, spouse, minor children) and Line 33199 (adult dependents you supported) of your T1 return.
Scans Gmail for 24 months of medical receipts, extracts vendor/date/amount/tax/line items from each, classifies by CRA expense type. Wizard at /my-cra-medical-report lets you pick any 12-month window with live threshold math. Generates T1-supporting documentation. Patient-name splitting for Line 33099 vs 33199 is manual today (auto-split ships in V2). Stores receipts in your own Google Drive for the full 6-year CRA retention.
Full guide: The Complete CRA Medical Expense Tax Credit Guide. Landing page: CRA Medical Expense Tax Credit Tracker.
Does ExpenseBot handle duplicate receipts? What if I resubmit receipts?
Yes! ExpenseBot checks your spreadsheet before adding any receipt. It will only flag something as a duplicate if the same receipt is already in your spreadsheet. So if receipts didn't go through the first time and you resubmit them, they'll be processed normally — no duplicate issue.
Which Amazon emails does ExpenseBot pick up?
ExpenseBot processes Amazon order confirmations from auto-confirm@amazon.* (any country marketplace — .com, .ca, .co.uk, .de, .fr, .co.jp, etc.). The order confirmation is Amazon's receipt — Amazon doesn't send a separate one. We parse the plain-text body directly to extract items, total, tax, and order number, then drop the row into your spreadsheet. Works across 20+ Amazon marketplaces.
Amazon's status emails are skipped on purpose:
shipment-tracking@amazon.* ("Shipped: …") — status update, not a charge.order-update@amazon.* ("Delivered: …") — status update, not a charge.return@amazon.* (refunds, returns) — we don't yet match refunds back to the original purchase.Scanning those would create a duplicate row for every order, so we filter them out. If you see Amazon emails in Gmail but no Amazon rows in your spreadsheet, the most common reason is simply that you haven't placed a new Amazon order since signing up — your next order confirmation will be captured automatically. Subscribers can also use the "Scan older" option on the Gmail scan button to sweep historical orders from prior years.
Does ExpenseBot handle multi currency?
Yes, we handle currency from any country and convert it back to your home currency using the exchange rate from the date of the receipt itself.
Where are my expenses stored?
All your expenses are automatically organized in a Google Sheet stored in your own Google Drive. This means you own your data, can edit it anytime, and can share it with anyone using familiar spreadsheet tools.
How do I view or edit my expenses on mobile (iPhone/Android)?
Your expenses live in a Google Sheet. To view and edit on your phone, we recommend installing the free Google Sheets app:
Once installed, tapping "View Spreadsheet" in ExpenseBot will open your expenses directly in the Google Sheets app for easy editing.
Can I edit expenses without installing an app?
Yes, you can view and make basic edits in your mobile browser (Safari/Chrome), but the experience is optimized for the Google Sheets app. For the best mobile editing experience, we recommend installing the free Google Sheets app. On desktop, the spreadsheet opens directly in your browser — no app needed.
Does editing expenses in my spreadsheet (recategorizing, changing tags) affect my reports?
No — once your data is in the sheet, changing categories, tags, totals, or any other field does not affect previously generated reports. Reports are created as a separate snapshot, so feel free to recategorize or update entries anytime.
Once added, the new option will appear in the dropdown for all future expenses.
How do I track business mileage?
ExpenseBot integrates with Google Maps to auto‑calculate distances. Enter your starting address and destination, toggle round‑trip if needed, and add it to your expense report with one click. The current IRS mileage rate is applied automatically to calculate your tax deduction.
The average business driver logs 10,000+ miles per year. At the current IRS rate, that's over $6,700 in tax deductions. ExpenseBot makes sure you capture every mile without a separate mileage tracking app draining your battery.
Can I import trips from Google Calendar?
Yes! If your calendar events have addresses (like client meetings, property showings, or job sites), ExpenseBot can import them and calculate mileage automatically. This is the easiest way to capture business miles you might otherwise forget.
Simply connect your Google Calendar, select the events with addresses, and ExpenseBot calculates the mileage for each trip. No more forgetting to log miles after a busy day of appointments.
How do I create a report by date range?
In the Report Wizard, choose "Report by Date Range" and select a start and end date. Your expenses are automatically summarized by category in a separate tab — no extra steps needed:
How do I create a tailored expense report for a trip, project or client?
Use tags to group expenses, then choose "Report by Tag" in the Report Wizard:
How do I reconcile my credit card statement with my expenses?
Connect your bank or credit card via Plaid to automatically pull transactions for reconciliation. ExpenseBot matches your statement with expenses, finds missing receipts, and updates exchange rates.
Bank connections are secured through Plaid, the same technology used by major financial apps. ExpenseBot never sees your login credentials. You can also upload PDF statements manually if you prefer not to connect directly.
Does ExpenseBot track bank fees and interest charges?
Yes — the Fee & Interest Detector automatically scans your linked bank accounts for hidden charges and notifies you when they appear or increase. It uses your existing Plaid bank connection — no new setup required.
ExpenseBot scans once a month and sends an Activity Center notification (plus push notification on mobile) when fees are detected or rise materially. The first time fees are found, you also receive a discovery email the following morning with the full category breakdown.
View your fee summary any time at expensebot.ai/my-fee-audit-report.
Does ExpenseBot track my recurring subscriptions?
Yes — the Subscription Auditor scans your expense sheet for recurring charges and surfaces your full subscription picture: what you're paying, how often, and whether any price has changed.
No bank connection required — it works entirely from the expenses already in your ExpenseBot spreadsheet. Run it from Settings → Specialized Reports → Subscription Auditor, from the Suggested Reports card on My Reports (appears once 2+ subscriptions are detected), or go directly to expensebot.ai/my-subscription-audit-report.
After your first scan, ExpenseBot monitors your expenses once a month and sends an Activity Center notification (plus push notification on mobile) if a new subscription appears or a price increases — you only hear about it when something actually changed.
Will ExpenseBot notify me if a subscription price goes up?
Yes. After your first Subscription Auditor scan, ExpenseBot automatically re-scans your expenses once a month. If any subscription's price has increased — or a new recurring charge appears — you'll get:
Nothing is sent when there's no change — only when there's a real delta worth knowing about. You can also trigger a manual scan any time from Settings → Specialized Reports → Subscription Auditor.
Can my AI assistant connect to ExpenseBot?
Yes. ExpenseBot publishes two Model Context Protocol (MCP) servers on npm — a read-only docs server and an authenticated server with 17 tools across search, capture, Gmail scan, reports, and analytics. They work with Claude Desktop, Cursor, Continue, paid ChatGPT, and any MCP-compatible client.
Setup is three minutes: generate a personal access token in Settings → AI Assistant Tokens, paste a JSON config block into your Claude Desktop config, restart Claude. From then on you can ask things like "find every Uber receipt I expensed last quarter" or "submit this photo as a $42 client lunch yesterday" in plain English.
Listed on the official MCP Registry. See the full guide at /mcp.
How do I share my expense report with a manager or accountant?
Share your report quickly with our One‑Click Sharing feature:
How do I approve expense reports as a manager or accountant?
When you receive access to a report, here's what you can do:
How do approved reports get locked to prevent tampering?
Once a report is approved in ExpenseBot, it becomes read‑only and locked in your Google Drive. This ensures compliance and preserves a secure audit trail for your finance team.
How do I manage tags to organize my expenses?
Tags let you group expenses by business trip, client, or project so you can create separate reports:
Can ExpenseBot create tags from my Google Calendar?
Yes. ExpenseBot scans your Google Calendar (past 90 days plus next 90 days) and proposes tags for recurring clients, projects, and trips. Built for anyone with recurring client meetings, scheduled gigs, or trips — chefs, photographers, consultants, agencies, freelancers, contractors.
Or navigate directly to /my-calendar-to-tags-wizard.
What it proposes:
Client – Acme CorpProject – Smith WeddingTrip – Toronto Food ShowLocation – Starbucks DowntownMulti-calendar supported — pick which calendars to scan in Step 1. Selection is shared with the Calendar → Mileage feature so you only configure it once.
If your work and personal events live on the SAME calendar, color-code your work events in Google Calendar (right-click event → "Set color") and use the Filter by event color picker in Step 1. The wizard will only consider events with those colors and skip everything else. Useful for mixed-use calendars or for scanning one client's color at a time.
Note: Apple Calendar's per-event coloring isn't standardized in CalDAV, so this filter is Google-only.
5-tier trust hierarchy when receipts arrive:
for:Acme or project:Website-Redesign in the receipt subject overrides everythingA merchant-class gate prevents false positives — a Best Buy laptop won't auto-tag to a "Lunch with Acme" event, hardware stores can't auto-tag to catering projects, etc.
Silent auto-tags surface in a "Recently auto-tagged" panel above View Expenses with one-click Undo for 7 days. Click any chip to see the reasoning ("Tagged because: meeting at 2pm with john@acme.com on receipt date"). Suggestions also appear in your bell-icon Activity Center with push notifications.
Rolling 30-day sweep: once a day, ExpenseBot scans the next 30 days of your calendar for new patterns and creates bindings automatically — so as your calendar fills with future gigs, tags appear without you having to re-run the wizard.
Privacy: only event metadata (titles, attendees, locations) is sent to Google Gemini for clustering. Private notes, descriptions, and attachments are never read. Disclosed on Step 1 of the wizard before you continue.
Toggle off: turn off "Auto-tag from calendar" in Tag Management → Calendar Bindings (or in the Automation Hub). Existing bindings stay; new receipts won't auto-apply, but you can still tag manually or via subject commands.
Different from Calendar → Mileage: the older mileage feature uses event addresses to compute drive distance for IRS/CRA mileage deductions. Calendar → Tags reads event metadata for tag attribution. Both share the same calendar connection but live in different panels — they're complementary.
Does ExpenseBot's Calendar to Tags feature work with Apple Calendar?
The wizard plugs into Google Calendar only — Apple doesn't expose a public REST API for iCloud Calendar. But you don't need the wizard to get the same per-gig auto-tagging value. Two universal paths work without any calendar integration:
Create your gig tags once in Tag Management — about 30 sec each:
Client – Acme Corp for recurring client workProject – Smith Wedding Catering for one-off projectsTrip – Toronto Food Show for travel eventsWhen you forward a receipt to receipts@expensebot.ai, add a subject command:
for: smith wedding → matches Project – Smith Wedding Cateringproject: catering acme → matches existing project tagfor: acme → matches Client – Acme CorpFuzzy matching handles partial names. ExpenseBot tags the receipt automatically — same outcome as the calendar wizard would have produced.
If you want full automation without subject-command discipline, create a free Google calendar called "Gigs" and put work events there — keep your personal life on iCloud. Then run the Calendar to Tags wizard against the new Google calendar. Best of both worlds.
Why we don't support Apple Calendar directly: Apple's authentication only exposes name + email, not calendar access. The only programmatic path is CalDAV with an app-specific password — a 5-step user setup versus Google's one-click OAuth. We've researched and planned the integration but it's deferred until adoption signal warrants. Reply to your trial or subscription email if you'd find direct Apple Calendar support valuable.
Color-coding tip: if you eventually move your gigs to a Google calendar, the wizard supports an optional "Filter by event color" step — scan only events you've colored a specific way (e.g. only Tomato red events). Apple's per-event coloring isn't standardized in CalDAV so this feature is Google-only.
How do I customize expense categories?
ExpenseBot automatically determines the correct expense category account. Here's how you can customize them:
My expenses from the same merchant are all in one generic category. How do I fix this?
This is common with merchants like Apple, Amazon, or Google where one merchant sells everything from games to business software to personal subscriptions. For example, dozens of "Apple" charges might all be categorized the same way — but they include mobile games, iCloud storage, streaming subscriptions, and dating apps.
Go to Settings > Manage Categories and create categories that reflect how you actually want to organize your spending. The key is the description — this tells the AI exactly when to use each category.
Now a Puzzles and Conquest purchase gets filed under "Games," an iCloud subscription goes to "Software and Apps," and a Match.com charge goes to "Personal."
ExpenseBot reads the actual content of the receipt — not just the merchant name. It looks at line items, subscription names, and purchase descriptions to understand what was bought. This information also flows into the Notes field as a brief summary (e.g., "Puzzles and Conquest" or "iCloud 200GB"), which helps you see at a glance what each charge was for.
Be specific and give examples. For instance, a medical professional might create:
Without descriptions, these look similar. With descriptions, the AI knows a Sanford Guide subscription goes under "Medical Reference" while a Kajabi business course goes under "Professional Development."
New categories apply automatically to all future receipts — no further action needed.
What's the difference between categories and tags?
Categories (Column C) are your G/L accounts — like "Meals & Entertainment" or "Travel". AI assigns these automatically based on your chart of accounts.
Tags (Column K) are user-defined groupings that cut across categories. A "Las Vegas Trip" tag might include meals, flights, hotels, and Uber rides — all different categories, grouped under one tag.
If I create a new tag wizard, will it overwrite my existing tag assignments?
No. Creating a new tag bundle through the wizard never overwrites a tag you've already assigned. When you save a new bundle through Settings → Manage Tags → ✨ Create a Tag with AI — Realtor, Wedding, Rental Property, Agency, or any custom AI-generated tag — ExpenseBot scans receipts from the last 90 days and only fills in receipts where the Tag column (Column K) is currently empty.
You'll see a toast like "5 tags saved. Applied to 37 existing receipts across all tags." — that "37" only counts previously untagged receipts. Your existing categorization is safe; the new bundle just fills the gaps in your untagged history and starts auto-tagging future receipts.
Want a previously-tagged receipt to use the new tag? Open your spreadsheet, find the receipt in the Tag column, click the cell, and pick the new tag from the dropdown. Manual edits always win — the wizard won't touch it again.
How do I add my Employee ID to my report?
Go to your main ExpenseBot spreadsheet, click the Settings tab, and enter your Employee ID in cell B2. Now all reports will include your Employee ID.
How do I delete a report?
Use the Report Wizard to delete or undo a report:
How do I correct or fix wrong data in my expense spreadsheet?
If an expense has incorrect data (wrong amount, vendor, date, etc.), here's how to fix it depending on how the receipt was originally added:
The simplest fix — just open your Google Sheet and correct the data in the row. You can change the amount, vendor, category, date, or any other field directly.
If the receipt was a photo or PDF upload and the AI extracted it incorrectly:
Note: If you don't delete the old row first, ExpenseBot will flag it as a duplicate.
If the receipt came in via Gmail scan or email forwarding:
If you have Gmail Automation enabled, the re-labeled email will also be picked up automatically in the nightly scan — no manual action needed.
I signed up as a Freelancer or Business user — how do I invite teammates now?
You can upgrade to Teams any time from Settings — no need to reset your account or start over.
Teams is a multi-user plan with a minimum of 2 paid seats. Your Team Admin access is included free on top — you never use a seat on yourself. So the smallest Teams plan is you (free admin) + 2 paid seats to assign to teammates = 3 people total using ExpenseBot. Seats are only for teammates who actually submit expenses.
Go to Settings and look for the blue-bordered "Invite your team to ExpenseBot" card, then click Upgrade to Teams. A modal opens where you pick your seat count (starts at 2, up to 200) and billing interval — $10 per seat/month or $100 per seat/year.
If you're already on a paid Freelancer or Business plan, the upgrade modal shows a yellow "Heads up" notice confirming your current subscription will cancel at the end of the billing period and your Teams plan starts immediately — no double-billing.
After checkout, License Manager appears in your sidebar so you can invite teammates by email, assign seats, and sync G/L accounts and tags across everyone. Accountants who upgrade keep their accountant view and get a three-way toggle (Accounting / Team / Expenses) to move between client books, team licenses, and their own expenses.
How do I invite clients to use ExpenseBot and share reports with me?
Invite clients and enable automatic report sharing to streamline collaboration:
As a reviewer, how do I communicate with the submitter about expenses?
Leave comments on individual expenses or add notes about the entire report:
How does the ExpenseBot AI determine compliance with Expense Policies?
Upload your policy PDF and ExpenseBot evaluates any report against it instantly.
What accounting software does ExpenseBot support?
ExpenseBot integrates with a wide range of accounting software:
Our AI export maps expenses to the correct G/L accounts for any accounting system, saving hours of manual categorization.
Can I connect Claude Desktop or other AI assistants to ExpenseBot?
Yes. ExpenseBot publishes two MCP (Model Context Protocol) servers on the official MCP Registry, letting Claude Desktop, Cursor, ChatGPT, and any MCP-compatible AI assistant work directly with your ExpenseBot account.
What you can do from your AI assistant:
Setup (3 minutes): Go to Settings → AI Assistant Tokens → Generate. Paste the token into your AI client's config. For Claude Desktop, edit claude_desktop_config.json and add:
{
"mcpServers": {
"expensebot": {
"command": "npx",
"args": ["-y", "@expensebot/mcp-server-auth", "--token=YOUR_TOKEN"]
}
}
}Find both servers on the official MCP Registry — search "ExpenseBot". ExpenseBot is the first expense management tool in the registry.
How does QuickBooks integration work?
ExpenseBot features a direct API integration with QuickBooks Online — not just an export. Connect once through our guided wizard, and expenses sync automatically with one click. Featured in the QuickBooks App Store.
Unlike export-based integrations, the QuickBooks API sync means no manual file uploads or imports — just click "Submit to QuickBooks" and the bill appears in your accounting system, ready for payment.
What can I do as a Team Administrator?
Admins can manage licenses, sync G/L accounts, and standardize tags across the team:
These features ensure consistency while saving time through AI automation.
How do I sync expense categories and G/L accounts for my team?
Upload your company's expense categories and G/L accounts to ensure consistent coding across all team members:
How do I purchase ExpenseBot licenses for my team?
Purchase multiple licenses at once and assign them to team members:
How do I get my year‑end tax summary?
ExpenseBot automatically generates a complete year‑end tax report with all expenses categorized, deductions calculated, and receipts attached. On December 31st, you receive a comprehensive spreadsheet ready to hand to your accountant or upload to tax software.
Unlike regular reports (which only include unassigned expenses), the year‑end report includes every expense for that year — even those already in other reports. Each category gets its own summary tab.
For US freelancers, ExpenseBot can pre-fill your Schedule C with expense totals by category. Canadian freelancers get the T2125 Statement of Business Activities. This saves hours of manual data entry and reduces errors during tax filing season.
How do I set business use percentage for categories?
Many expenses are only partially deductible when used for both business and personal purposes. ExpenseBot lets you configure the business use percentage for each expense category, and automatically calculates the deductible portion.
Set these percentages once in your expense category settings, and ExpenseBot applies them automatically to every expense in that category. Your year-end tax report shows both the full expense amount and the calculated business deduction.
How do I set the home office percentage for my expenses?
Home office expenses are only partially deductible — you can only claim the portion of your home you use exclusively for business. ExpenseBot lets you set a single home office percentage once, then applies it automatically to every relevant expense.
The standard method is square footage: (business sq ft ÷ total home sq ft) × 100. Example: a 200 sq ft office in a 2,000 sq ft home = 10%.
Configure it once in Settings → Expense Categories and ExpenseBot applies the percentage to every expense in those categories. Your year-end tax report shows both the full expense AND the calculated deduction — feeding into Form 8829 → Schedule C for US freelancers, or the business-use-of-home section of T2125 for Canadian freelancers.
Note: Both the IRS and CRA require the space to be used regularly and exclusivelyfor business to claim these deductions.
Can ExpenseBot track income, not just expenses?
Yes — ExpenseBot tracks income alongside expenses. Three input methods feed a single Income tab in your spreadsheet, and a reconcile-with-bank step keeps everything in sync.
Reconcile with bank: once a month (or anytime, on demand), click Reconcile with bank to compare your Income tab against the deposits in your linked bank account. ExpenseBot lists every gap and lets you accept, edit, or ignore each one in seconds. Your year-end report shows a reconciliation status (✓ once you've reconciled at least 83% of months) so your accountant knows whether the totals are bank-verified.
The Income tab is the single source of truth — manual entries, bank reconciliation matches, and year-end worksheet adjustments all flow through it.
Can I use ExpenseBot to track medical expenses for my HUD recertification?
Yes — ExpenseBot has a dedicated HUD Medical Recertification Report. If you're in Section 8, public housing, Section 202, or Section 811 housing and the head of household is 62+ or disabled, federal law (24 CFR 5.611) lets you deduct unreimbursed medical expenses from the income your rent is based on. Every $1,000 documented saves roughly $25/month off your rent.
Setup takes five minutes: create a Health & Medical tag using the AI wizard (type "HUD medical") and ExpenseBot automatically scans your Gmail for qualifying receipts — prescriptions, copays, doctor visits, hearing aids, Medicare premiums, and service animal expenses. Run a historical scan to catch up on the past year, then generate an itemized worksheet ready to hand directly to your housing coordinator.
For detailed guidance on exactly what qualifies, how Medicare premiums are entered, how to preview your rent savings, and how the recertification date window works — ask our AI assistant.
What is the AI Todo List?
Free for all ExpenseBot users! Email your notes, reminders, or meeting notes to todo@expensebot.ai and AI organizes everything into one continuously‑updated Google Doc. No app switching, no manual organizing — just email and done. Powered by Gemini 2.5.
Unlike traditional todo apps, you never need to open an app or log in. Just email from anywhere — your phone, laptop, or even forward emails with tasks. The AI continuously updates your Google Doc, merging related items, removing duplicates, and keeping everything organized. It's like having a personal assistant who never sleeps.
How do I write on receipts for easy tagging?
Write special prefixes on receipts before photographing. ExpenseBot's AI reads your handwriting and automatically processes them — no manual entry required after upload.
This simple technique saves hours of manual categorization. Write "TAG:Acme" on all receipts for that client, and they're automatically grouped together for easy reporting. Write "w/ John Smith" on dinner receipts to document who you met with. Perfect for freelancers tracking multiple clients, consultants billing projects, or anyone who needs to document business meal attendees.


60-day free trial. No credit card required. Cancel anytime.
How does ExpenseBot handle my data?
ExpenseBot uses a privacy-first approach. Unlike most apps, ExpenseBot does not store your data on our servers. All data — receipts, photos, and spreadsheets — is stored in your own Google Drive, accessible only by you. We process data transiently (to extract receipt details) and then discard it. Nothing is retained on our side.
What is CASA Tier 2 certification?
CASA (Cloud Application Security Assessment) Tier 2 is Google's highest security certification for third-party apps that access Google user data. It requires an independent security audit by a Google-approved lab. ExpenseBot passed this audit, meaning Google has verified our app meets enterprise-grade security standards.
Does ExpenseBot read my emails?
ExpenseBot only scans for receipt-like emails (e.g., order confirmations, invoices). It does not read personal emails, conversations, or anything unrelated to expenses. Gmail scanning is optional — you turn it on explicitly, and you can turn it off at any time under Settings. Our Gmail API usage complies with Google's Limited Use Requirements.
What happens to my photos after scanning?
Receipt photos are processed to extract details (vendor, amount, date), then the extracted data is saved to your Google Sheets spreadsheet and the original photo is stored in your Google Drive. ExpenseBot never stores your photos on our servers. Your original photos in Google Photos are never modified or deleted.
Who can see my expense data?
Only you. Your data lives in your Google Drive under standard Google access controls. ExpenseBot cannot see your data once it's written to your Drive. If you choose to share your spreadsheet with an accountant or manager, that's controlled by you through Google's standard sharing — not through us.
What if I cancel? Do I keep my data?
Yes, 100%. Since everything is stored in your Google Drive, cancelling ExpenseBot changes nothing about your data. Your spreadsheets, receipts, and reports remain in your Drive forever. There are no export fees and no data hostage situations. It's already yours.
Can I reset my account or delete my data?
Yes, under Settings, choose Reset Account to delete the ExpenseBot folder on your Drive and start fresh. This won't affect your subscription status. You can also revoke ExpenseBot's access entirely from your Google Account permissions at any time.
Does ExpenseBot share my data with third parties?
No. We do not sell, share, or provide your data to any third party. The only external services involved are Google (where your data lives) and Stripe (for payment processing, which never sees your expense data). If you connect an accounting system like QuickBooks, data is sent only when you explicitly click sync — and only the data you choose to export.
Why can't I enable push notifications?
If you see "Notification permission denied", your browser has blocked notifications for ExpenseBot. This is a browser-level setting that the app cannot override — only you can re-enable it.
How to fix it:
After changing the setting, go back to ExpenseBot Settings and toggle push notifications on. See Google's guide on managing notifications for more details.
Our team is available Monday–Friday, 9 AM–6 PM EST.
Browse our guides and tutorials in the sections above.
We typically respond within 24 business hours.
For urgent matters, include "URGENT" in your email subject line.