# 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 |

```markdown
## 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](https://exporter.dev/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

## Related

- [Calendar](https://exporter.dev/calendar): Every month as a Markdown file
- [Reminders](https://exporter.dev/docs/reminders): List files, fields and fixes
- [MCP server](https://exporter.dev/docs/mcp): Connect Claude and other agents

---

human version: https://exporter.dev/docs/calendar
every page: https://exporter.dev/llms.txt
