Skip to content

Import formats

You can import tasks and projects into a workspace from Markdown or CSV. TinyHub always shows a preview before writing anything, and re-importing an edited file updates rather than duplicates.

You don’t need to reshape your export to match this page. TinyHub auto-detects columns and warns you about anything it couldn’t place — this is the reference for when you want to be sure.

  • Headings become projects.
  • Checklist items (- [ ] / - [x]) become tasks under the nearest heading.
  • A checked item arrives already completed.
# Website relaunch
- [ ] Draft the sitemap
- [x] Kick-off call
# Brand refresh
- [ ] Collect logo files

TinyHub reads a few markers inside the task’s own text and lifts them out of the title, so you don’t get a title with a date stuck on the end:

Write Means
📅 2026-09-30 or due: 2026-09-30 Due date
⏳ 2026-09-24 or do: 2026-09-24 / scheduled: 2026-09-24 Scheduled (“do”) date
!!! / !! / ! High / medium / low priority
Flagged
# Website relaunch
- [ ] Draft the sitemap 📅 2026-09-30 !!

This is the Obsidian Tasks / Todoist-ish convention, so exports from those tools usually land correctly without editing.

A spreadsheet with a header row. One row = one task. TinyHub matches your column names against the list below — first match wins, and matching is case-insensitive.

TinyHub field Header names it recognises
Title (required) title, name, task, subject, todo, item, summary
Notes note, description, desc, details, body, comment
Due date anything containing due or deadline
Scheduled date schedul…, start date, do date, planned, when
Priority anything containing priorit
Completed done, complete, status, finished, state
Project project, list, section, category, group, area, bucket
Flag flag, star, important, pinned
ID id, uid, uuid, or anything like external_id

If no column looks like a title, TinyHub uses the first column and tells you so in the preview.

A project column groups tasks into projects — same name, same project, created once.

  • 2026-09-30 or 2026/09/30
  • the same with a time: 2026-09-30 14:00 or 2026-09-30T14:00
  • a full ISO timestamp with a zone: 2026-09-30T14:00:00+02:00

Anything else — 30/09/2026, Sept 30 — is left empty rather than guessed at, because a misread date is worse than a missing one. Reformat the column in your spreadsheet first.

  • Priorityhigh/urgent/critical/p1/1/!!!, med/medium/normal/p2/2/!!, low/minor/p3/3/!, none/p4/0
  • Completeddone, complete, completed, closed, finished, archived, resolved, or a truthy cell (1, true, yes, y, x, )
  • Flag — a truthy cell as above, or flag, flagged, star, starred

Excel in Swedish, German and several other locales exports ; instead of ,. You don’t have to do anything about that: TinyHub reads the header row and works out whether the file is separated by commas, semicolons or tabs. The preview says which one it used when it isn’t a plain comma file.

A separator inside a quoted cell doesn’t confuse it — Title;"Client, dept";Due is read as three semicolon-separated columns, not four comma-separated ones.

Import the same file twice and TinyHub updates the tasks it already has rather than creating duplicates. This is what makes a spreadsheet a workable staging area: fix the sheet, import again.