MCPcopy Create free account
hub / github.com/simstudioai/sim / eventToDocument

Function eventToDocument

apps/sim/connectors/google-calendar/google-calendar.ts:205–243  ·  view source on GitHub ↗

* Converts a CalendarEvent to an ExternalDocument. * * Backward compatibility: when only a single calendar is configured (the only * code path that existed before multi-calendar support), externalId and * contentHash use the legacy non-namespaced format so existing connectors see * zero churn o

(
  event: CalendarEvent,
  calendarId: string,
  isMultiCalendar: boolean
)

Source from the content-addressed store, hash-verified

203 * single calendar.
204 */
205function eventToDocument(
206 event: CalendarEvent,
207 calendarId: string,
208 isMultiCalendar: boolean
209): ExternalDocument | null {
210 if (event.status === 'cancelled') return null
211
212 const content = eventToContent(event)
213 if (!content.trim()) return null
214
215 const startTime = event.start?.dateTime || event.start?.date || ''
216 const attendeeCount = event.attendees?.filter((a) => !a.resource).length || 0
217
218 const externalId = isMultiCalendar ? `${calendarId}:${event.id}` : event.id
219 const contentHash = isMultiCalendar
220 ? `gcal:${calendarId}:${event.id}:${event.updated ?? ''}`
221 : `gcal:${event.id}:${event.updated ?? ''}`
222
223 return {
224 externalId,
225 title: event.summary || 'Untitled Event',
226 content,
227 mimeType: 'text/plain',
228 sourceUrl: event.htmlLink || `https://calendar.google.com/calendar/event?eid=${event.id}`,
229 contentHash,
230 metadata: {
231 calendarId,
232 startTime,
233 endTime: event.end?.dateTime || event.end?.date || '',
234 location: event.location || '',
235 organizer: formatOrganizer(event.organizer),
236 attendeeCount,
237 isAllDay: isAllDayEvent(event),
238 eventDate: startTime,
239 updatedTime: event.updated,
240 createdTime: event.created,
241 },
242 }
243}
244
245export const googleCalendarConnector: ConnectorConfig = {
246 ...googleCalendarConnectorMeta,

Callers 1

google-calendar.tsFile · 0.85

Calls 3

eventToContentFunction · 0.85
formatOrganizerFunction · 0.85
isAllDayEventFunction · 0.85

Tested by

no test coverage detected