Microsoft Office 365 · Arazzo Workflow

Microsoft Office 365 Reschedule Event

Version 1.0.0

Create an event, patch its start and end times, then read it back.

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

Provider

microsoft-office-365

Workflows

reschedule-event
Create an event then move it to a new time.
Creates an event via POST /me/events (201), updates its time via PATCH /me/events/{event-id} (200), then reads it via GET /me/events/{event-id} (200) to confirm.
3 steps inputs: newEnd, newStart, originalEnd, originalStart, subject, timeZone outputs: end, eventId, start
1
createEvent
createEvent
Create an event at its original time on the default calendar.
2
moveEvent
updateEvent
Patch the event to change its start and end times. Returns the updated event object.
3
confirmEvent
getEvent
Read the event back to confirm the new schedule persisted.

Source API Descriptions

Arazzo Workflow Specification

microsoft-office-365-reschedule-event-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Office 365 Reschedule Event
  summary: Create an event, patch its start and end times, then read it back.
  description: >-
    Moves a meeting to a new time slot. The workflow creates an event, patches
    the event to change its start and end times (the update returns 200 with the
    revised event), and then reads the event back to confirm the new schedule.
    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: reschedule-event
  summary: Create an event then move it to a new time.
  description: >-
    Creates an event via POST /me/events (201), updates its time via PATCH
    /me/events/{event-id} (200), then reads it via GET /me/events/{event-id}
    (200) to confirm.
  inputs:
    type: object
    required:
    - subject
    - originalStart
    - originalEnd
    - newStart
    - newEnd
    - timeZone
    properties:
      subject:
        type: string
        description: The subject of the event.
      originalStart:
        type: string
        description: The original start date-time.
      originalEnd:
        type: string
        description: The original end date-time.
      newStart:
        type: string
        description: The new start date-time to move the event to.
      newEnd:
        type: string
        description: The new end date-time to move the event to.
      timeZone:
        type: string
        description: The time zone name for all date-times.
  steps:
  - stepId: createEvent
    description: Create an event at its original time on the default calendar.
    operationId: createEvent
    requestBody:
      contentType: application/json
      payload:
        subject: $inputs.subject
        start:
          dateTime: $inputs.originalStart
          timeZone: $inputs.timeZone
        end:
          dateTime: $inputs.originalEnd
          timeZone: $inputs.timeZone
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      eventId: $response.body#/id
  - stepId: moveEvent
    description: >-
      Patch the event to change its start and end times. Returns the updated
      event object.
    operationId: updateEvent
    parameters:
    - name: event-id
      in: path
      value: $steps.createEvent.outputs.eventId
    requestBody:
      contentType: application/json
      payload:
        start:
          dateTime: $inputs.newStart
          timeZone: $inputs.timeZone
        end:
          dateTime: $inputs.newEnd
          timeZone: $inputs.timeZone
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      updatedStart: $response.body#/start
  - stepId: confirmEvent
    description: Read the event back to confirm the new schedule persisted.
    operationId: getEvent
    parameters:
    - name: event-id
      in: path
      value: $steps.createEvent.outputs.eventId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      start: $response.body#/start
      end: $response.body#/end
  outputs:
    eventId: $steps.createEvent.outputs.eventId
    start: $steps.confirmEvent.outputs.start
    end: $steps.confirmEvent.outputs.end