Skip to content

CSV import and export

Import subscriptions from another app or export their basic fields to a spreadsheet; use JSON backups for a full migration.

CSV is good for migrating and for spreadsheets, but it only holds the basics of each subscription. To keep the full ledger, use a full backup.

  1. Export a full backup, then open Settings → Data → Import CSV.
  2. Choose the file and check the subscription count and new payment methods in the preview.
  3. Choose Add to existing or Replace all. Appending the same file again creates duplicates.
  4. Open imported subscriptions and check currencies, cycles, dates and payment methods.

Settings → Data → Export CSV downloads subscriptions-YYYY-MM-DD.csv (UTF-8 with BOM, so Excel opens it correctly). The columns are:

Name,Currency,Price,Category,Cycle,Starts,Ends,Tags,Payment Account,URL,Notes
Column Content
Cycle Daily, Weekly, Monthly, Yearly, Lifetime, or e.g. Every 3 months
Starts, Ends YYYY-MM-DD
Tags Space-separated
Payment Account Payment method name

Price is the current price. Phases, price history, charges, shared plans and paid-for records aren’t exported.

Settings → Data → Import CSV. It accepts CSVs exported by the Subscriptions app for iOS / macOS as well as Calends’ own export — both use the same header. Column names are case-insensitive and can be in any order; Start and End work for Starts and Ends, and Payment Method for Payment Account.

How columns are read:

Column Rule
Name Required. Rows without a name (blank lines, totals) are skipped.
Currency Defaults to CNY.
Price Currency symbols and other non-numeric characters are stripped.
Category Defaults to “Other”. New category names are added to your categories.
Cycle Understands Daily, Weekly, Monthly, Quarterly, Yearly, Annually, Lifetime, One time, Once and Every N days / weeks / months / years; anything else becomes monthly.
Starts, Ends M/D/YYYY or YYYY-MM-DD; a missing start date becomes today. End dates in the past import as cancelled.
Tags Space- or comma-separated.
Payment Account Matched to an existing payment method by name; otherwise a new one is created, with its type guessed from the name (Alipay, WeChat, PayPal, phone credit, App Store, credit card, bank card). Foreign-currency subscriptions with no account (TRY, NGN, PHP, INR, PKR, EGP) go to that region’s App Store balance, e.g. “App Store TR balance”.

You get a preview first — how many subscriptions, and which payment methods will be created. Then choose:

  • Add to existing: appended to your current subscriptions. Every import creates new subscriptions, so importing the same file twice gives you duplicates;
  • Replace all: erases your current subscriptions and payment methods and replaces them with the CSV.

Imported subscriptions only have the basics. Add price changes, plan switches and charges in the editor afterwards if you need them.