{
  "kind": "google-calendar",
  "role": "connection",
  "packageName": "@assemblyline-agents/google-calendar",
  "helper": "defineGoogleCalendarConnection",
  "protocol": "http",
  "provider": "google_calendar",
  "description": "Google Calendar lists, events, availability, and scheduling through the Google Calendar REST API.",
  "defaultBaseUrl": "https://www.googleapis.com/calendar/v3",
  "baseUrlEnv": "GOOGLE_CALENDAR_API_BASE_URL",
  "capabilities": [
    "http-api",
    "oauth",
    "pkce",
    "refresh-token",
    "live-tools"
  ],
  "scopes": [
    "https://www.googleapis.com/auth/calendar.readonly",
    "https://www.googleapis.com/auth/calendar.events"
  ],
  "subject": "user",
  "tools": {
    "allow": [
      "google_calendar_list_calendars",
      "google_calendar_get_calendar",
      "google_calendar_list_events",
      "google_calendar_get_event",
      "google_calendar_list_instances",
      "google_calendar_query_freebusy",
      "google_calendar_create_event",
      "google_calendar_update_event",
      "google_calendar_delete_event",
      "google_calendar_move_event"
    ]
  },
  "readToolPatterns": [
    "google_calendar_list_calendars",
    "google_calendar_get_calendar",
    "google_calendar_list_events",
    "google_calendar_get_event",
    "google_calendar_list_instances",
    "google_calendar_query_freebusy"
  ],
  "writeToolPatterns": [
    "google_calendar_create_event",
    "google_calendar_update_event",
    "google_calendar_delete_event",
    "google_calendar_move_event"
  ],
  "eventCatalog": [
    "calendar.changed"
  ],
  "defaultEvents": [
    "calendar.changed"
  ],
  "eventMode": "watch",
  "eventScope": "principal",
  "setup": [
    {
      "kind": "connection",
      "name": "google-calendar-oauth-configuration",
      "required": true,
      "message": "Create a Google OAuth web client, enable the Google Calendar API, set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET, and register the Assembly Line connection callback URL. Calendar authorization is stored as its own connection grant."
    }
  ],
  "requiredConfig": [
    "GOOGLE_CLIENT_ID"
  ],
  "optionalConfig": [
    "GOOGLE_REDIRECT_URI",
    "GOOGLE_CALENDAR_API_BASE_URL"
  ],
  "requiredCredentials": [
    "GOOGLE_CLIENT_SECRET"
  ],
  "optionalCredentials": []
}
