Calendar
How the Calendar export works, from connecting to fixing problems.
Connect
Press “Connect” beside Calendar on Exporter’s home, then “Open Calendar Folder”. The panel opens in Calendar’s own folder, ~/Library/Group Containers/group.com.apple.calendar: press “Select This Folder”. Then choose where the files go and press “Use This Folder”.
macOS does not ask for calendar access, and Exporter never asks for it: the events are read from the store inside the folder you granted, not through EventKit. The permission dialog you may have seen from other apps is that other route.
Where the files go
One Markdown file per month, in one folder: 2026-09.md, 2026-10.md. A folder right in your home folder, like ~/Documents, gets a calendar-export folder inside it; a deeper one, like ~/Documents/calendar, is used as it is. A month with no events in it gets no file.
What is exported
Every event in the calendars ticked on the card, inside the window the card is set to. The picker groups calendars under their accounts, the way Calendar’s sidebar does, so one untick can leave out an account.
An event is filed under the month it starts in, once, even when it runs past the end of the month.
Repeats
A repeating event is on every day it happens, not only the day it was made. Exporter reads the occurrences Calendar keeps for its own views, so the file agrees with the app, and a line says how the event repeats.
Format
Always Markdown: the month’s front matter, then a heading per day and one line per event.
A day reads all-day events first, then by the time they start, which is the order Calendar draws it in. An all-day event says “all day”; it never gains a 00:00 it did not have.
The file
| key | holds |
|---|---|
title, month |
“Calendar, September 2026”, and 2026-09 |
events |
how many events the file holds |
calendars |
the month’s calendars, busiest first |
A line is the time, the event, the calendar it came from and where it is, then the fields a vault can query:
| field | holds |
|---|---|
repeats:: |
daily, weekly, every 2 weeks |
join:: |
the video call’s link, when the event has one |
with:: |
how many people are on it |
## 2026-09-17, Thursday
- all day Marilyn Birthday · Birthdays
- 09:30-10:00 Standup · Work · Zoom [repeats:: weekly] [with:: 6]
- 13:00-14:00 Lunch with Kevin · Home · Philz Coffee
How far back it reads
The card’s “reads” row: this year, 2 years, 5 years or all. It changes which files are written, so a narrower window is a smaller export.
Calendar keeps about two years of occurrences for its own views, and that is all there is to read: on a real Mac, 2 years, 5 years and all return the same events. “all” means everything this Mac has, not everything that ever happened.
Free and unlocked
Your first 100 events are free, and they stay free. Unlocking Calendar exports the rest (pricing).
Sync and full resync
After the first “Sync Now”, Exporter rewrites a month when something in it changes, at most once a minute. Moving an event rewrites its month, and only that month.
“Full Resync” asks first, then removes the month files Exporter wrote and writes every ticked calendar again. Anything else in the folder stays.
Problems and fixes
- “no calendar database in that folder (pick the Calendar folder itself)”: press “Connect” again and select the folder the panel opens in
- a calendar is missing: it is unticked on the card, or its whole account is. The picker groups calendars by account
- old events are missing: the card’s “reads” row is set to a shorter window, or Calendar itself no longer holds them
- your reminders are in the export: Calendar shows scheduled reminders as a calendar of their own. Untick the “Reminders” account on the card