{
  "$id": "https://intentschema.org/profiles/com.microsoft.graph/productivity.calendar.event.create.v1.json",
  "id": "org.intentschema.productivity.calendar.event.create.v1@com.microsoft.graph.v1",
  "pins": "https://intentschema.org/intents/productivity/calendar/event/create/v1.json",
  "title": "Microsoft Graph (Outlook) calendar event create profile",
  "description": "Profile for creating events via the Microsoft Graph /me/events endpoint (Outlook calendar). Adds Teams meeting and sensitivity options.",
  "constraints": {
    "properties": {
      "target": {
        "properties": {
          "system": {
            "const": "ms_graph"
          }
        },
        "required": [
          "system"
        ]
      },
      "ms_graph": {
        "type": "object",
        "properties": {
          "isOnlineMeeting": {
            "type": "boolean"
          },
          "onlineMeetingProvider": {
            "enum": [
              "teamsForBusiness",
              "skypeForBusiness",
              "skypeForConsumer"
            ]
          },
          "sensitivity": {
            "enum": [
              "normal",
              "personal",
              "private",
              "confidential"
            ]
          },
          "showAs": {
            "enum": [
              "free",
              "tentative",
              "busy",
              "oof",
              "workingElsewhere",
              "unknown"
            ]
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  },
  "api": {
    "method": "POST",
    "path": "/v1.0/me/events",
    "scopes": [
      "Calendars.ReadWrite"
    ],
    "docs": "https://learn.microsoft.com/en-us/graph/api/user-post-events",
    "params": {
      "object.summary": "subject",
      "object.description": "body.content (contentType: html or text)",
      "object.location": "location.displayName",
      "object.start": "start.dateTime (ISO 8601)",
      "object.end": "end.dateTime",
      "object.timezone": "start.timeZone / end.timeZone (IANA)",
      "object.attendees": "attendees[].emailAddress.address + type",
      "object.recurrence": "recurrence.pattern + range",
      "object.all_day": "isAllDay",
      "ms_graph.isOnlineMeeting": "isOnlineMeeting",
      "ms_graph.onlineMeetingProvider": "onlineMeetingProvider",
      "ms_graph.sensitivity": "sensitivity",
      "ms_graph.showAs": "showAs",
      "ms_graph.categories": "categories[]"
    },
    "base_url": "https://graph.microsoft.com"
  }
}
