{
  "$id": "https://intentschema.org/profiles/com.google.calendar/productivity.calendar.event.create.v1.json",
  "id": "org.intentschema.productivity.calendar.event.create.v1@com.google.calendar.v1",
  "pins": "https://intentschema.org/intents/productivity/calendar/event/create/v1.json",
  "title": "Google Calendar event create profile",
  "description": "Profile for creating events via the Google Calendar API. Pins target.system to `google_calendar`, allows specifying a non-default calendar, and adds Google Meet conferencing.",
  "constraints": {
    "properties": {
      "target": {
        "properties": {
          "system": {
            "const": "google_calendar"
          },
          "external_id": {
            "type": "string",
            "description": "Calendar id (e.g., `primary` or a specific calendar). Omit for the user's primary calendar."
          }
        },
        "required": [
          "system"
        ]
      },
      "google_calendar": {
        "type": "object",
        "properties": {
          "conference": {
            "type": "object",
            "properties": {
              "create": {
                "type": "boolean",
                "description": "When true, request Google Meet conference creation."
              }
            }
          },
          "visibility": {
            "enum": [
              "default",
              "public",
              "private",
              "confidential"
            ]
          },
          "guests_can_invite_others": {
            "type": "boolean"
          },
          "guests_can_see_other_guests": {
            "type": "boolean"
          }
        }
      }
    }
  },
  "api": {
    "method": "POST",
    "path": "/calendar/v3/calendars/{calendarId}/events",
    "scopes": [
      "https://www.googleapis.com/auth/calendar"
    ],
    "docs": "https://developers.google.com/calendar/api/v3/reference/events/insert",
    "params": {
      "object.summary": "summary",
      "object.description": "description",
      "object.location": "location",
      "object.start": "start.dateTime (RFC 3339)",
      "object.end": "end.dateTime",
      "object.timezone": "start.timeZone / end.timeZone (IANA)",
      "object.all_day": "start.date / end.date (date-only = all-day)",
      "object.attendees": "attendees[].email",
      "object.recurrence": "recurrence[] (RRULE strings)",
      "object.reminders": "reminders.overrides[].method + minutes",
      "google_calendar.conference.create": "conferenceData.createRequest",
      "google_calendar.visibility": "visibility",
      "google_calendar.guests_can_invite_others": "guestsCanInviteOthers",
      "google_calendar.guests_can_see_other_guests": "guestsCanSeeOtherGuests",
      "target.external_id": "calendarId path param (default: primary)"
    },
    "base_url": "https://www.googleapis.com"
  }
}
