Yes — ExpenseBot reads your Google Calendar to figure out which client, project, or trip a receipt belongs to, so you don't have to type the tag yourself. Built for anyone with recurring client meetings, scheduled gigs, or trips: chefs, photographers, consultants, agencies, freelancers, contractors.
How to launch the wizard
Three entry points (any one works):
- Tag Management modal → "Create tags from your calendar" button at the top.
- Suggested Reports card on My Reports — surfaces for freelancer/incorporated/realtor/agency users until they complete the wizard once.
- Automation Hub card in Settings → Gmail Automation — alongside Gmail Scanning, Auto-reports, Insights, Bank sync.
You can also navigate directly to /my-calendar-to-tags-wizard at any time.
What the wizard does
- Scans the past 90 days plus the next 90 days of your selected calendar(s).
- Clusters patterns:
- Recurring same-attendee meetings → suggested
Client – <Company>tag. - Recurring same-location events → suggested
Location – <Place>tag. - Distinctive future events with project keywords (wedding, shoot, launch, renovation, gala, retreat) → suggested
Project – <Name>tag. - Travel-shaped events (trip, vacation, conference, expo, summit, festival, show) → suggested
Trip – <Name>tag.
- Recurring same-attendee meetings → suggested
- Shows you the proposals with default-on checkboxes for high-confidence patterns. Edit any tag name before saving.
- Saves bindings that link the calendar pattern to the tag — so future receipts can be matched.
Multi-calendar support
If you have multiple Google Calendars (work, personal, client-specific), pick which ones to scan in Step 1 of the wizard. Selection is shared with the Calendar → Mileage feature so you only configure it once. At least one calendar must be selected.
Filter by event color (optional)
If your work and personal events live on the same calendar, color-code your work events in Google Calendar (right-click an event → "Set color") and use the optional Filter by event color picker in Step 1 of the wizard. Pick which colors to scan — the wizard will only consider events with those colors and skip everything else.
Useful when:
- You only have one calendar but mix work + personal events on it
- You color-code clients differently (red = Acme, blue = Beta) and want to scan one client's events at a time
- You want to skip scanning recurring personal events (doctor appointments, family stuff) without un-checking them individually in the proposals
Default: filter is OFF (scans all events). Your color selection saves locally + on the user doc, so the daily rolling sweep uses the same filter going forward. Only Google's standard event-color palette (Lavender, Sage, Grape, Flamingo, Banana, Tangerine, Peacock, Graphite, Blueberry, Basil, Tomato) is supported — events that inherit the calendar's default color are skipped when this filter is on.
Trust hierarchy — when ExpenseBot auto-tags vs asks first
Once a binding is saved, ExpenseBot evaluates each new receipt against a 5-tier hierarchy. The matcher tries each tier in order and stops at the first match:
- Subject command (≥0.95 confidence — silent auto-tag) —
for:Acmeorproject:Website-Redesignin the receipt subject overrides everything. - Attendee + same-day + plausible merchant (≥0.95 — silent auto-tag) — receipt date matches a calendar event with the bound attendee, and the merchant is class-plausible (travel, restaurant, SaaS, etc.).
- Location match (≥0.95 — silent auto-tag) — merchant location matches the event's bound location string.
- Proximity to upcoming project (0.7–0.95 — yellow suggestion chip, you confirm) — generic merchant near a single upcoming
Project –orTrip –binding within 30 days. - Multiple plausible bindings (0.5–0.7 — inline dropdown, you pick) — receipt could match more than one upcoming binding.
A merchant-class gate prevents obvious false positives — a Best Buy laptop won't auto-tag to a "Lunch with Acme" event just because it landed during the calendar block. Hardware stores can't auto-tag to catering projects, etc.
Subject commands
When forwarding a receipt to receipts@expensebot.ai, prepend the subject with:
for:Acmeorfor:Acme Corp— explicit client attribution.project:Website-Redesign— explicit project attribution.
These bypass calendar matching entirely and apply the matching existing tag. Useful for one-off receipts that don't have a calendar trail.
Recently auto-tagged panel + undo
Silent auto-tags surface in a "Recently auto-tagged" panel above the View Expenses button on your home page. The panel lists the last 7 days of silent decisions with a one-click Undo button on each. Click the chip on any auto-tagged row to see the reasoning ("Tagged because: meeting at 2pm with john@acme.com on receipt date").
Bell-icon Activity Center + push notifications
Medium-confidence suggestions (the yellow chips) also surface in your Activity Center bell, with a push notification when ExpenseBot finds a match. Bulk actions in the Activity Center: "Accept all high-confidence (≥0.85)" and "Dismiss all".
Rolling 30-day forward sweep
Once a day, ExpenseBot scans the next 30 days of your calendar for new patterns and creates new bindings automatically — so as your calendar fills with future gigs, the tags appear without you having to re-run the wizard. Existing bindings update their match counts as receipts hit them.
Privacy
We use Google Gemini to cluster patterns from your calendar — only event metadata (titles, attendees, locations) is sent to the model. Private notes, descriptions, and attachments are never read. The wizard tells you this on Step 1 before you continue.
Toggle off
Don't want auto-tagging? 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 use them via subject commands or the spreadsheet's Tag dropdown.
Country-agnostic
Works in all 50 countries ExpenseBot supports. Tag names are user-driven so they fit your local language, vendors, and conventions.
Different from Calendar → Mileage
Calendar → Tags reads event metadata for tag attribution. Calendar → Mileage (the older feature) reads event addresses to compute drive distance for IRS / CRA / HMRC mileage deductions. Both share the same calendar connection but produce different outputs and live in different settings panels. You can use both together — they're complementary, not competing.
