Problem
`google-calendar/events` and `fathom/meetings` both carry structured participant lists — `attendees[].email` and `calendar_invitees[].email` respectively — but neither built-in profile declares identity keys. So calendar events and meeting records never join to Attio people / Gmail threads by shared email.
This is the obvious next-step after #129 (Gmail). The three together — Gmail threads, calendar events, meeting recordings — would let agents answer "show me everything about jane@acme.com" across the full communication surface.
Proposed
Update two built-in profiles (blocked on #128):
`google-calendar/events`:
```json
"identityKeys": [
{ "prefix": "email", "path": "organizer.email" },
{ "prefix": "email", "path": "attendees[].email" }
]
```
`fathom/meetings`:
```json
"identityKeys": [
{ "prefix": "email", "path": "recorded_by.email" },
{ "prefix": "email", "path": "calendar_invitees[].email" }
]
```
Same normalization as #129 (lowercase, trim, dedupe).
Acceptance
- `sync run google-calendar --models events` writes events with organizer + attendee identity keys.
- `sync run fathom --models meetings` writes meetings with host + invitee identity keys.
- Query by identity key returns records across all four platforms (Attio, Gmail, gcal, Fathom).
Blocked on
#128 (identityKeys plural)
Related
Cross-platform identity story. Found during PR #125 testing.
Problem
`google-calendar/events` and `fathom/meetings` both carry structured participant lists — `attendees[].email` and `calendar_invitees[].email` respectively — but neither built-in profile declares identity keys. So calendar events and meeting records never join to Attio people / Gmail threads by shared email.
This is the obvious next-step after #129 (Gmail). The three together — Gmail threads, calendar events, meeting recordings — would let agents answer "show me everything about jane@acme.com" across the full communication surface.
Proposed
Update two built-in profiles (blocked on #128):
`google-calendar/events`:
```json
"identityKeys": [
{ "prefix": "email", "path": "organizer.email" },
{ "prefix": "email", "path": "attendees[].email" }
]
```
`fathom/meetings`:
```json
"identityKeys": [
{ "prefix": "email", "path": "recorded_by.email" },
{ "prefix": "email", "path": "calendar_invitees[].email" }
]
```
Same normalization as #129 (lowercase, trim, dedupe).
Acceptance
Blocked on
#128 (identityKeys plural)
Related
Cross-platform identity story. Found during PR #125 testing.