User guide / Your schedule
Importing a file
The no-sign-in way to bring a whole schedule in. Drop a file, review what it found, done.
- Accepts .ics, Google Calendar .zip and .csv files.
- Everything is read on your computer. Nothing is uploaded.
- Shifts go to Review. Everything else becomes busy time.
Step 1: Export your calendar
How you export depends on your calendar app. The welcome tour has an illustrated version of these steps (and you can replay it from Settings).
Google Calendar
- On a computer, open Google Calendar and click the gear icon, then Settings.
- Choose Import & export, then Export.
- A file called
calendar.zipdownloads. Use it as it is. Don't unzip it.
Apple Calendar
- In Calendar, choose File → Export → Export…
- Save the
.icsfile somewhere you can find it.
Outlook
Outlook shares calendars as a published link rather than a file download.
- In Outlook on the web: Settings → Calendar → Shared calendars.
- Pick the calendar, choose Can view all details, and press Publish.
- Copy the ICS link, or download it, and either import the file here or use it as a calendar link.
Notion (or any CSV)
Export your Notion database as a CSV and import that. Bettersubbook recognises columns named like name/title/subject, date/when, start/end time and location. If it can't tell which is which, it asks once with a small “which column is which?” step.
Only English dates (October 6, 2026 12:00 PM → 2:00 PM, 10/6/2026, 2026-10-06) and 12- or 24-hour times are understood.
Step 2: Open the import page
Any of these routes open the same page:
- Settings → Calendar card → Import a file or link
- The welcome tour's import step
- Import a file on the desktop calendar
- The small Import from an ICS file link at the bottom of Add a shift
Drop one or more files on the box, or click to choose them.
Step 3: Review what it found
The page tells you how many possible shifts it found and links to the desktop calendar so you can see your busy time. The shifts are listed below with the same cards as the Review tab. Approve the real ones and skip the rest. When you've dealt with everything the tab closes itself. See Review.
What an import does, precisely
Shifts and busy time
- Events that look like shifts go to Review. Everything else (classes, meetings) becomes busy time.
- Weekly repeats collapse into one recurring block, so a class that meets all semester is one entry, not forty.
Importing more than once
- Each file is tied to the calendar it came from, based on the calendar's own name and the file name (ignoring the extension and any “ (2)” from repeated downloads).
- Re-importing a newer export of the same calendar replaces that calendar's earlier busy time and any of its shifts still waiting in Review. Moved or removed events don't linger. Shifts you already approved stay.
- Importing a different calendar adds to what's there. It never removes the first one's data, or anything you added by hand.
- If a new file has no busy time at all, the old busy time is kept. So accidentally importing a tiny file can't wipe out a whole schedule.
No duplicates
A shift you already saved, already have in Review, or skipped earlier is not offered again. They're matched by date and hours, so the same shift appearing in a second file (even under a different internal ID) won't come back after you skipped it. A busy block that's already present from any source isn't added twice.
Real-world calendar details
- Times in other time zones, and UTC times, are converted to your local time.
- Repeating events are expanded for daily, weekly (including several weekdays), monthly (including “first Monday”) and yearly rules, honoring end dates, skipped dates and moved occurrences.
- Cancelled, “free” and all-day events are skipped.
- Anything before today is dropped. Open-ended repeats stop at the end of the year, or about four months ahead if that's later.
- A shift that runs past midnight is cut at 11:59 PM.
Something missing or unclear? Tell us and we'll fix the guide.