Docs / Connect / Calendar and contacts

Index calendars and contacts in ModelBrain

Most memory knows what you said, and a calendar and an address book supply the who and the when. Two sources share this page. The calendar source reads .ics files into a partition called Calendar, one memory per event. The contacts source reads .vcf files into a partition called Contacts, one memory per person. Add them separately. Available from ModelBrain 0.6.6.

Before you start
Add them
  1. Open the ModelBrain menu, choose Vaults, then Add Source, then Calendar (.ics files)…. Pick the folder with your .ics files.
  2. For contacts, choose Contacts (.vcf files)… from the same menu and pick the folder with your .vcf files.
  3. ModelBrain indexes each in the background.

From a terminal, connector_sync register <id> <path> --type calendar does the same. For example: connector_sync register cal ~/Calendars --type calendar. Use --type contacts for address books.

What it reads
What it skips
Limits and safety

A container file over 4 GiB is refused and recorded as a failure, not dropped. Set MODELBRAIN_CONTAINER_MAX_BYTES to change that ceiling. A single member over 32 MiB is refused the same way. Files are read as a stream, so a large calendar is never held whole.

The index is built from the text that gets stored, not the raw file. An exporter that stamps the export time on every event therefore does not cause every event to be reindexed. A file that ends in the middle of an event or card is reported as failed, and its existing members are kept for that pass. ModelBrain removes a member from memory only after it has read its container to the end.

This source is hidden from relay callers. Anything that reaches ModelBrain through the hosted relay, which is how ChatGPT and Grok connect, cannot see what this source imported unless you add its partition (and the partition of any other source of the same kind) to that connection's allowlist yourself. Contacts hold other people's details, which is one more reason they stay local.

Check that it works
  1. Ask your assistant to run ModelBrain diagnostics. The source reports its kind, members, members_failed and last_container_bytes.
  2. Ask a local assistant what is on your calendar around a date, or for a colleague's email address.
If something does not work

A file shows as failed with "the file ends inside an item"

The copy was cut short. Export it again. The events and contacts already indexed from it stay in memory.

Only one of the two sources appears

Calendar and contacts are separate sources. Add each from the Add Source menu.

Questions

How do I add my calendar to ModelBrain?

Export it as .ics files, then open the ModelBrain menu, choose Vaults, Add Source, then Calendar (.ics files), and pick the folder. Available from ModelBrain 0.6.6.

How do I add my contacts to ModelBrain?

Export them as .vcf files, then use Vaults, Add Source, Contacts (.vcf files) and pick the folder. Calendar and contacts are two separate sources.

Does ModelBrain expand repeating events?

No. A repeat rule is kept as text on the event and is not expanded into separate occurrences.

Can ChatGPT or Grok see my calendar or contacts?

No. The Calendar and Contacts partitions are hidden from relay callers, which is how ChatGPT and Grok connect.

Other sources

Each new source kind has its own page.

Claude Code memory → · ChatGPT export → · Mail → · Bookmarks →
Connect an assistant

Sources feed the same memory these assistants read.

Claude Desktop → · Claude Code → · Cursor →