Get Exporter

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.

2026-09.md
---
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. 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.

  2. 2Pick calendars

    Every calendar is ticked, grouped by account. Untick one and its events leave the months on the next sync.

  3. 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?
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.

FeatureExporterExport .icsScreenshot
Readable MarkdownYesNoNo
One file per month, a heading per dayYesNoNo
Repeats on every day they happenYesNoYes
Every calendar at onceYesOne at a timeNo
Kept in syncYesNoNo
Price100 events free, then a one-time purchaseFreeFree

Let Claude read your calendar

Exported months are searchable over Exporter's local MCP server. Set it up.

Connect Claude Code.

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

Related

Exporter

Version 5.2 (App Store)

macOS 15 or later

exporter@tinysend.com

© system operator