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.
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.
---
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 · WorkWhat comes out
One file per month, in one folder. A month you have no events in gets no file.
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.
A weekly standup is on every week, not once. Exporter reads the occurrences Calendar itself keeps, so the file matches what the app shows.
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.
A room, a venue or an address, as the event carries it. A video call's link is on the line as join::.
The picker groups your calendars under their accounts, the way Calendar's sidebar does, so one untick can leave out a whole account.
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
- 1Connect 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.
- 2Pick calendars
Every calendar is ticked, grouped by account. Untick one and its events leave the months on the next sync.
- 3It syncs
Press Sync. Each month becomes one file, and an event you move rewrites that month within a minute.
How it works: Calendar docsGuides: Keep your calendar
Questions
Still have questions? Get in touch
Does this ask for calendar access?
Why one file per month and not one per event?
What is free?
Are invitations and attendees included?
Is anything uploaded?
Against the alternatives
Calendar exports .ics, which is a format for another calendar, not for reading or searching.
| Feature | 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.
Then ask: “What did I do in September, and who did I meet twice?” Claude reads the months as files.
$ claude mcp add --transport http exporter http://localhost:8744/mcp