Microsoft Office 365 · Arazzo Workflow

Microsoft Office 365 Schedule Event

Version 1.0.0

Create a calendar event, then read it back to confirm the booking.

1 workflow 1 source API 1 provider
View Spec View on GitHub CloudCollaborationEnterpriseMicrosoftProductivityArazzoWorkflows

Provider

microsoft-office-365

Workflows

schedule-event
Create a calendar event and confirm it by reading it back.
Creates an event via POST /me/events (201), then reads it via GET /me/events/{event-id} (200) to confirm the booking.
2 steps inputs: attendeeAddress, endDateTime, locationName, startDateTime, subject, timeZone outputs: eventId, subject, webLink
1
createEvent
createEvent
Create an event on the default calendar with the supplied subject, time range, location, and a single required attendee.
2
confirmEvent
getEvent
Read the created event back by id to confirm the booking.

Source API Descriptions

Arazzo Workflow Specification

microsoft-office-365-schedule-event-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Office 365 Schedule Event
  summary: Create a calendar event, then read it back to confirm the booking.
  description: >-
    Books a meeting on the signed-in user's default calendar. The workflow
    creates an event with a subject, start and end times, a location, and an
    attendee, then reads the event back by id to confirm the booking and capture
    its web link. The create returns 201. Every step spells out its request
    inline so the flow can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: graphApi
  url: ../openapi/microsoft-graph-api-openapi.yml
  type: openapi
workflows:
- workflowId: schedule-event
  summary: Create a calendar event and confirm it by reading it back.
  description: >-
    Creates an event via POST /me/events (201), then reads it via GET
    /me/events/{event-id} (200) to confirm the booking.
  inputs:
    type: object
    required:
    - subject
    - startDateTime
    - endDateTime
    - timeZone
    properties:
      subject:
        type: string
        description: The subject of the event.
      startDateTime:
        type: string
        description: The event start, e.g. 2026-06-10T15:00:00.
      endDateTime:
        type: string
        description: The event end, e.g. 2026-06-10T16:00:00.
      timeZone:
        type: string
        description: The time zone name, e.g. Pacific Standard Time.
      locationName:
        type: string
        description: The display name of the meeting location.
      attendeeAddress:
        type: string
        description: The email address of an attendee to invite.
  steps:
  - stepId: createEvent
    description: >-
      Create an event on the default calendar with the supplied subject, time
      range, location, and a single required attendee.
    operationId: createEvent
    requestBody:
      contentType: application/json
      payload:
        subject: $inputs.subject
        start:
          dateTime: $inputs.startDateTime
          timeZone: $inputs.timeZone
        end:
          dateTime: $inputs.endDateTime
          timeZone: $inputs.timeZone
        location:
          displayName: $inputs.locationName
        attendees:
        - type: required
          emailAddress:
            address: $inputs.attendeeAddress
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      eventId: $response.body#/id
      webLink: $response.body#/webLink
  - stepId: confirmEvent
    description: Read the created event back by id to confirm the booking.
    operationId: getEvent
    parameters:
    - name: event-id
      in: path
      value: $steps.createEvent.outputs.eventId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      eventId: $response.body#/id
      subject: $response.body#/subject
  outputs:
    eventId: $steps.confirmEvent.outputs.eventId
    webLink: $steps.createEvent.outputs.webLink
    subject: $steps.confirmEvent.outputs.subject