Budget Calendar API integration (MiShell · OpenFinance)

Compliant protocol analysis and runnable API source for the calendar-based budgeting app by MiShell Software Systems (ca.mishell.budget).

From $300 · Pay-per-call available
OpenData · OpenFinance · Calendar budgeting · Protocol analysis

Turn a calendar-based personal-finance app into a structured OpenFinance feed

Budget Calendar stores every payment as an entry on a calendar — date, amount, category icon, balance adjustment and statistical roll-ups. We deliver an integration layer that reads its desktop-compatible file format, watches the Google Drive backup folder, and turns that data into authenticated JSON endpoints your accounting, ERP, or coaching app can consume.

Calendar transaction stream — Per-day income/expense entries with custom icons, notes, recurrence rules, and the user-edited balance correction. Output as JSON, CSV, or normalized ISO-20022 fragments.
Google Drive backup watcher — Authorized OAuth listener on the user's Drive folder that ingests new MiShell budget files within seconds of a phone-side save.
Monthly statistics roll-ups — Programmatic access to the in-app reports for one or more months (income, spend by category, net change, projected balance).
Desktop-mobile parity — A single parser handles both the Android file and the Windows desktop file format, so multi-device users get one unified ledger view.

What we deliver

Because MiShell ships Budget Calendar as a local-first app with no public API, our deliverables focus on three integration surfaces: the desktop-compatible file format, the Google Drive backup, and the Excel export. Each surface is wrapped behind an authenticated JSON interface so downstream services do not need to know about the underlying format.

Deliverables checklist

  • OpenAPI 3.1 spec for the statement, recurring, and stats endpoints
  • Protocol report: file-format layout, encoding, version notes, recurrence schema
  • Runnable Python and Node.js source for the Drive watcher + parser
  • Webhook emitter so your stack is notified on each new sync
  • Reconciliation script for desktop/mobile divergence (last-write-wins + conflict log)
  • PIPEDA / GDPR consent template and data-retention defaults
  • Automated tests covering 50+ recorded sample budget files

Engagement models

  • Source code delivery from $300 — runnable code and docs handed over; pay after delivery upon satisfaction.
  • Pay-per-call hosted API — point your client at our endpoint and pay per request; no upfront fee, ideal for finance coaches running a small client roster.
  • Bespoke retainer — when the integration must follow MiShell desktop releases or add new categorization logic over time.

Data available for integration

The table below maps each user-visible feature in Budget Calendar to the data it produces, the granularity available after parsing, and the typical OpenFinance use case. Field names follow our normalized schema, not MiShell's internal storage layout.

Data typeSource (screen / feature)GranularityTypical use
TransactionCalendar day cell · payment entryPer record: date, amount, currency, category icon, note, balance flagBookkeeping import, cash-flow forecasting, expense categorization
Recurring paymentRepeating entry rule (weekly / monthly / yearly)Rule + next-N projected occurrencesSubscription audit, debt schedule, mortgage tracking
Balance adjustment"Adjust to actual balance" actionDate, delta, new balance, free-text reasonReconciliation against bank statements
Monthly statisticReports view (1+ months)Income, spend, net, category histogramDashboards, financial coaching, KPI feeds
Category & iconCustom icon per paymentLabel, color, icon hashSpend taxonomy, ML categorization training set
Sync metadataGoogle Drive backup fileFile hash, device id, save timestamp, versionMulti-device conflict resolution, audit trail
Excel exportManual share / print actionTabular per-row export with formatted columnsOne-shot accountant hand-off, tax season packaging

Typical integration scenarios

1. Coaching dashboard for financial planners

A Canadian financial-coaching service onboards each client by asking them to share a folder in Google Drive containing their Budget Calendar backup. Our watcher ingests every new save and pushes normalized transactions into the coach's dashboard. Business context: coaches review weekly cash-flow. Data: Transaction + Recurring payment + Monthly statistic. OpenFinance mapping: AISP-style read-only consent on a user-owned data store rather than a bank.

2. Bookkeeping bridge to QuickBooks / Xero

Self-employed users who keep personal and small-business spend in Budget Calendar can sync only the business-tagged transactions to accounting software. Context: avoid double-entry. Data: Transaction (filtered by category icon) + Excel export fallback. Mapping: JSON statement endpoint feeds the accounting platform's bank-feed importer.

3. Desktop ↔ mobile reconciliation

Users on the MiShell desktop trial plus the Android app frequently get drift between machines. Our reconciliation service reads both file formats, applies last-write-wins per record id, and emits a conflict log. Context: multi-device household budgets. Data: Sync metadata + Transaction history. Mapping: follows ISO/IEC 27001 audit-trail guidance for change tracking.

4. Cash-flow forecast webhook

A neobank partner wants to send a nudge when a customer's projected balance, based on Budget Calendar recurring entries, dips below a threshold. Context: proactive overdraft prevention. Data: Recurring payment projections + Balance adjustment. Mapping: matches the AISP "forward-looking statement" pattern that Plaid's Open Banking documentation describes for European personal-finance use cases.

5. Tax-season packaging

Once a year, accountants ask their clients for a full transaction log. Our Excel-aware parser collects the user's most recent export, normalizes columns to a CRA/IRS-friendly layout, signs the file, and returns a download link. Context: annual reporting. Data: Excel export + Category & icon. Mapping: short-lived consent token, single-purpose access.

Technical implementation

Each endpoint below sits behind an OAuth 2.0 bearer token issued for one specific end-user. Tokens are scoped narrowly (read-only by default), are rotated on every Drive consent refresh, and never see the raw Google credentials — we use the Drive API's per-folder scope so the integration cannot read unrelated files.

Statement query API

POST /api/v1/budget-calendar/statement
Content-Type: application/json
Authorization: Bearer <ACCESS_TOKEN>

{
  "user_id": "u_9f3a1c",
  "from_date": "2026-04-01",
  "to_date":   "2026-04-30",
  "include": ["transactions", "recurring", "balance_adjust"],
  "currency": "CAD"
}

200 OK
{
  "user_id": "u_9f3a1c",
  "range": {"from":"2026-04-01","to":"2026-04-30"},
  "transactions": [
    {
      "id": "tx_4012",
      "date": "2026-04-08",
      "amount": -42.55,
      "currency": "CAD",
      "category": "groceries",
      "icon": "cart",
      "note": "Loblaws",
      "is_recurring": false
    }
  ],
  "stats": {"income": 3200.00, "spend": 2118.40, "net": 1081.60}
}

Drive backup webhook (server → client)

POST https://your-app.example.com/hooks/budget-calendar
X-OFL-Signature: t=1715472000,v1=8e2a...
Content-Type: application/json

{
  "event": "budget_file.synced",
  "user_id": "u_9f3a1c",
  "file": {
    "drive_id": "1aBcD...",
    "name": "budget_2026.mbc",
    "modified_at": "2026-05-11T08:14:22Z",
    "device": "android-pixel7"
  },
  "diff": {
    "added": 3, "updated": 1, "removed": 0,
    "new_tx_ids": ["tx_4013","tx_4014","tx_4015"]
  }
}

Verify with HMAC-SHA256 over the raw body using your shared signing key.

Auth: per-user Drive consent (Node.js)

// Exchange Google OAuth code for a folder-scoped refresh token
const url = "https://oauth2.googleapis.com/token";
const body = new URLSearchParams({
  code,
  client_id: process.env.G_CLIENT_ID,
  client_secret: process.env.G_CLIENT_SECRET,
  redirect_uri: process.env.G_REDIRECT,
  grant_type: "authorization_code"
});
const res = await fetch(url, { method: "POST", body });
if (!res.ok) throw new Error("oauth_exchange_failed: " + res.status);
const { refresh_token, access_token } = await res.json();

// Store refresh_token encrypted; access_token is short-lived.
// Scope used: https://www.googleapis.com/auth/drive.file
// → only files the user explicitly opens with our app are visible.

Error envelope

HTTP/1.1 409 Conflict
Content-Type: application/json

{
  "error": "sync_conflict",
  "message": "Two device saves within 30s; last-write-wins applied.",
  "winner_device": "android-pixel7",
  "loser_device":  "windows-desktop",
  "trace_id": "01HXY...EE"
}

Common errors:
  401 invalid_token        – refresh the OAuth grant
  403 drive_scope_denied   – user revoked folder access
  410 file_format_unknown  – MiShell desktop bumped its version
  429 rate_limited         – back off per Retry-After header

Compliance & privacy

Regulatory baseline

Budget Calendar is published by a Canadian developer and used worldwide, so our integrations follow Canada's PIPEDA for personal-data handling, the EU GDPR data-minimization principle for European users, and the spirit of PSD2 consent and revocation for any flow that resembles an Account Information Service. Where the user explicitly opts in, we also produce CCPA-style data-export and delete-on-request endpoints.

Operational safeguards

  • Drive scope is drive.file — never drive — so unrelated files stay invisible.
  • All refresh tokens encrypted at rest with envelope keys (AWS KMS or GCP KMS).
  • Audit log per request: user id, scope, endpoint, sha256 of payload, retention 90 days.
  • Right-to-erasure endpoint wipes parsed cache, token, and logs within 30 days.
  • Optional on-prem deployment for coaching firms that must keep data in Canada.

Data flow / architecture

The pipeline is intentionally narrow — four stages, no extra hops:

  • Client → Drive: User saves on phone or desktop; MiShell writes the budget file into the user's chosen Drive folder.
  • Ingestion service: Our OAuth-authorized watcher downloads only changed files in that folder via the drive.file scope.
  • Parser & normalization store: Records are decoded into the schema shown in the data inventory, deduplicated against prior versions, and stored in a per-tenant Postgres database.
  • API output / webhook: Downstream services either pull via /statement or receive a signed budget_file.synced webhook on every change.

Market positioning & user profile

Budget Calendar targets households and individuals who prefer a visual, calendar-first view of money over the envelope and zero-based methods popularized by YNAB and EveryDollar. Most users are on Android and Windows desktops (the trial Microsoft Store build is widely distributed), with a long-tail audience across Canada, the United States, the United Kingdom, and Western Europe. Typical buyers are detail-oriented, run a household budget rather than a business one, and are comfortable paying a one-time license rather than a monthly subscription. This makes the app a strong candidate for B2B2C OpenFinance plays — financial coaches, credit unions, and family-office advisors who want a lightweight ingestion path that does not depend on bank-aggregator pricing.

Screenshots

Click any thumbnail to view the full-resolution screenshot. The screens below are the same ones MiShell publishes on Google Play, and they map directly to the data types listed in the integration inventory above.

Budget Calendar screenshot 1 Budget Calendar screenshot 2 Budget Calendar screenshot 3 Budget Calendar screenshot 4 Budget Calendar screenshot 5 Budget Calendar screenshot 6 Budget Calendar screenshot 7 Budget Calendar screenshot 8 Budget Calendar screenshot 9 Budget Calendar screenshot 10

Similar apps & integration landscape

Calendar-based and category-based personal finance apps each store overlapping data — transactions, recurring schedules, balances. Teams who integrate Budget Calendar often also need a normalized feed from one or more of the apps below, so we list them here as part of the broader ecosystem rather than as competitors.

CalendarBudgetWeb-first calendar budgeting tool with bank-feed import. Users often want a unified statement that merges CalendarBudget's online data with offline Budget Calendar files.
Monarch MoneyCalendar of recurring bills, subscriptions, and paychecks. Integration overlap: cross-checking expected versus realized cash flow against Budget Calendar entries.
PocketSmithLong-range cash-flow forecasts and a calendar view. Households split between PocketSmith and Budget Calendar often consolidate exports into one bookkeeping pipeline.
YNAB (You Need A Budget)Zero-based envelope budgeting. Some users keep YNAB for category discipline while using Budget Calendar for visual day-by-day planning, then need both streams in one report.
EveryDollarDave Ramsey zero-based planner. Common ask: pull the EveryDollar export plus the Budget Calendar log into one tagged transaction set.
GnuCashOpen-source double-entry accounting. Frequently used as the long-term store; Budget Calendar acts as the day-to-day capture layer that feeds GnuCash via CSV.
HomeBankDesktop personal accounting with reports. Integration overlap on Excel-style exports and category mapping.
MoneyManager ExCross-platform desktop budgeting. Multi-device households often own MoneyManager Ex on laptop and Budget Calendar on phone, and need reconciliation.
Money CalendarLightweight Android calendar budget app. Similar data shape, so our parser ships with an adapter for it as well.
EasyBudgetShared family budgeting with a calendar layout. Often paired with Budget Calendar when one family member prefers each tool.

About us

OpenFinance Lab is an independent studio that builds compliant integrations for mobile and desktop finance apps. Our engineers come from neobanking, payment-aggregator, and ERP backgrounds, and we have shipped OpenFinance-style adapters for calendar-budget tools, e-wallets, bank apps, and accounting suites used across Canada, the United States, and the European Union.

  • Protocol analysis: file formats, OAuth handshakes, sync trees, recurrence rules.
  • API engineering: REST and webhook layers, OpenAPI specs, SDKs in Python, Node.js, Go.
  • Privacy & compliance reviews aligned with PIPEDA, GDPR, and PSD2 expectations.
  • Pricing: source-code delivery from $300, or pay-per-call on our hosted endpoints.
  • Delivery cadence: most first drops ship within two business weeks.

Contact

Send us the target app and your integration scope. We respond within one business day with a written estimate, deliverables list, and a sample data shape.

Open the contact page

Engagement workflow

  1. Scope confirmation: list of endpoints, target user count, regions, retention rules.
  2. Protocol analysis on a sample Budget Calendar file the customer provides (2–4 business days).
  3. Implementation of the parser, Drive watcher, and JSON endpoints (3–7 business days).
  4. Compliance pass: PIPEDA / GDPR review, signed audit log spec, revoke endpoint.
  5. Hand-off: source code, OpenAPI spec, automated tests, deployment notes.

FAQ

Does Budget Calendar by MiShell expose an official public API?

No. MiShell Software Systems ships Budget Calendar with on-device storage, Excel export and Google Drive sync — there is no public REST API. We build a compliant integration layer by parsing the exported Excel files, watching the Google Drive backup folder, and reading the desktop-compatible file format to expose JSON endpoints your stack can consume.

What data can be extracted for OpenFinance use cases?

Calendar transactions (date, amount, category, custom icon, notes), recurring payment schedules, monthly statistics, balance adjustments, and account/budget metadata. Each record can be normalized to ISO 20022-style fields for downstream accounting or analytics.

How is user consent and privacy handled?

All integrations run only after the end-user authorizes access to their Google Drive backup folder or supplies the export file. We follow Canada's PIPEDA, GDPR data-minimization, and ISO/IEC 27001 logging practices, retain only what the customer asks for, and provide a per-user revoke endpoint.

How long does a typical Budget Calendar integration take?

A first delivery of the Drive-sync watcher, statement parser, and JSON statement API is usually 5–10 business days. Adding scheduled webhooks, recurring-transaction projection, or multi-device reconciliation can extend the timeline to 10–15 business days.
📱 Original app overview (appendix)

Budget Calendar is a budget and payment planning application by MiShell Software Systems (ca.mishell.budget), available on Google Play with 10,000+ installs and last updated in July 2025. Rather than the ledger-style UI common in many budget apps, every transaction is rendered on a calendar — users see, at a glance, where money has been spent and what is scheduled next.

Each payment can carry a unique icon. Users move a transaction to a different day to reflect real-world timing, and they can adjust the budget balance to match their actual bank balance. The reports view gives clear statistics for one or more months — income, spend, net change, and category breakdowns.

The smartphone version uses the same file format as the MiShell desktop versions (sold separately, with a free Windows trial on the Microsoft Store). Google Drive can be used to sync between phone, tablet, and PC. Transactions can be exported to MS Excel, printed, or viewed in a detailed web-browser layout.

  • Developer: MiShell Software Systems (Canada)
  • Package: ca.mishell.budget
  • Category: Finance · Personal budgeting · Calendar UI
  • Distribution: Google Play (Android), Microsoft Store (desktop trial), mishell.ca (full desktop license)
  • Last update: July 11, 2025

Last updated: 2026-05-11