| name | calendar-intake-backfill |
| description | Process grouped calendar source records into entity notes or Inbox notes with provenance and checkpoint verification. |
Calendar Intake Backfill
Use this skill for grouped calendar/vcalendar/vadimgest calendar records that need to be compacted into durable notes.
When to use
- A batch contains one or more calendar events or updates from a source dump.
- The record clearly belongs to a known person, deal, project, or recurring meeting thread.
- The note needs a durable provenance trail and a checked cursor update.
Core workflow
- Compact the whole channel/thread group first.
- Deduplicate repeated facts before writing anything.
- Route to the best durable home:
- clear entity match -> update the entity State + Log note
- unclear or cross-entity -> create/update one sourced Inbox note for the batch
- Preserve provenance in every fact:
- use the exact source URI
- include source line ranges or representative URIs in Inbox summaries
- write only facts supported by the batch
- If the record changes a future meeting date, update the entity's
next_call-style state fact to the newest confirmed event.
- Add a log entry with the date, title, src, mentions, summary, and
facts-touched.
- Only after writeback, run the exact checkpoint commit snippet for the listed source lines.
- Verify the checkpoint file reflects only the committed source(s).
Note selection rules
- Prefer the entity note when the person/deal/project is obvious.
- Use an Inbox note when routing is uncertain or spans multiple entities.
- Do not create one note per raw row when multiple rows belong to the same meeting thread.
Pitfalls
- Do not leave stale future-call state in place if the batch introduces a newer confirmed meeting.
- Do not commit source lines that were not fully processed.
- Do not summarize calendar evidence without the meeting title, time, and source URI.
- Do not lose the meeting thread context when the source is only a single event.
Verification
- Re-open the edited note and confirm the new state fact and log entry are present.
- Confirm the checkpoint JSON moved the listed source line to the committed position.
- If a batch was partial, leave the unprocessed source uncommitted.
See references/calendar-backfill.md for the compact checklist and writeback template.