# Export Apple Calendar to Markdown

One file per month on your Mac, a heading per day, and a repeating event on every day it happens.

[Download for Mac](https://apps.apple.com/us/app/exporter-notes-to-markdown/id6741618455?mt=12)

## A month, as a file.

The month opens with what it holds, then a heading per day and one line per event: the time, what it is, which calendar it came from and where.

`2026-09.md`

```markdown
---
title: "Calendar, September 2026"
created: 2026-09-01T09:00:00
tags:
  - "calendar"
month: 2026-09
events: 284
calendars: ["Work", "Home", "Birthdays"]
---

## 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
- 19:00-22:00 SF Database Meetup · Work · 655 Montgomery St

## 2026-09-19, Saturday

- all day, 3 days Lisbon · Home
- 08:00 SFO to LIS · Work
```

## What comes out

One file per month, in one folder. A month you have no events in gets no file.

- A heading per day: All-day events first, then by the time they start, which is the order Calendar draws a day in. An all-day event says so instead of gaining a midnight it never had.
- Repeats on every day they happen: A weekly standup is on every week, not once. Exporter reads the occurrences Calendar itself keeps, so the file matches what the app shows.
- The calendar each event came from: Work, Home, a shared calendar or a subscribed one. The month's calendars are listed in the front matter, so a vault can filter on them.
- Where it is: A room, a venue or an address, as the event carries it. A video call's link is on the line as `join::`.
- Accounts, not a long list: The picker groups your calendars under their accounts, the way Calendar's sidebar does, so one untick can leave out a whole account.
- How far back: this year, 2 years, 5 years or all, on the card. Calendar itself keeps about two years of occurrences, so that is what there is to read.

## How it works

1. Connect Calendar: A panel opens in Calendar's own folder: press Select This Folder. Exporter reads the store in it, and macOS never asks for calendar access.
2. Pick calendars: Every calendar is ticked, grouped by account. Untick one and its events leave the months on the next sync.
3. It syncs: Press Sync. Each month becomes one file, and an event you move rewrites that month within a minute.

How it works: [Calendar docs](https://exporter.dev/docs/calendar) · Guides: [Keep your calendar](https://exporter.dev/guides/calendar/keep-your-calendar)

## Questions

### Does this ask for calendar access?

No. Exporter reads Calendar's own store through the folder you grant, not through EventKit, so no permission dialog appears and no other app's calendars are touched.

### Why one file per month and not one per event?

A year is a few hundred events and twelve files you can read. A file each would be a folder of one-line notes.

### What is free?

Your first 100 events export and keep syncing free. Unlocking Calendar is a one-time purchase in Exporter.

### Are invitations and attendees included?

A line says how many people are on an event. Their names and replies stay in Calendar.

### Is anything uploaded?

No. Exporter reads your calendar and writes the files on your Mac. No account, no server.

## Against the alternatives

Calendar exports .ics, which is a format for another calendar, not for reading or searching.

| | Exporter | Export .ics | Screenshot |
|---|---|---|---|
| Readable Markdown | Yes | No | No |
| One file per month, a heading per day | Yes | No | No |
| Repeats on every day they happen | Yes | No | Yes |
| Every calendar at once | Yes | One at a time | No |
| Kept in sync | Yes | No | No |
| Price | 100 events free, then a one-time purchase | Free | Free |

## Let Claude read your calendar

Exported months are searchable over Exporter's local MCP server. [Set it up](https://exporter.dev/docs/mcp).

Connect Claude Code. Then ask: “What did I do in September, and who did I meet twice?” Claude reads the months as files.

```sh
claude mcp add --transport http exporter http://localhost:8744/mcp
```

## Related

- [Reminders](https://exporter.dev/reminders): Every list as a Markdown checklist
- [Export Apple Notes to Markdown](https://exporter.dev/notes): Apple Notes as Markdown, kept in sync
- [MCP server](https://exporter.dev/docs/mcp): Connect Claude and other agents

---

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