Microsoft Exchange · Arazzo Workflow

Microsoft Exchange Review and Respond to an Invite

Version 1.0.0

List upcoming events, read the next one, and accept the invitation.

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

Provider

microsoft-exchange

Workflows

review-and-respond-to-invite
Find the next event in a window and accept it.
Reads the calendar view for the supplied window, fetches the first event, and accepts it with a comment.
3 steps inputs: acceptComment, windowEnd, windowStart outputs: acceptStatus, eventId, subject
1
listView
listCalendarView
List events in the supplied calendar view window, returning the first event ordered by start time.
2
getEvent
getEvent
Retrieve the first event to inspect its subject, organizer, and response status before responding.
3
acceptEvent
acceptEvent
Accept the event and send a response to the organizer with the supplied comment.

Source API Descriptions

Arazzo Workflow Specification

microsoft-exchange-review-and-respond-to-invite-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Microsoft Exchange Review and Respond to an Invite
  summary: List upcoming events, read the next one, and accept the invitation.
  description: >-
    An invitation-handling pattern on Microsoft Graph calendar. The workflow
    lists the upcoming events in a calendar view window, reads the first event
    to inspect its organizer and timing, and then accepts that event with an
    optional response comment. Each step inlines its request so the flow can be
    executed without consulting the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: graphCalendarApi
  url: ../openapi/microsoft-exchange-graph-calendar-openapi.yml
  type: openapi
workflows:
- workflowId: review-and-respond-to-invite
  summary: Find the next event in a window and accept it.
  description: >-
    Reads the calendar view for the supplied window, fetches the first event,
    and accepts it with a comment.
  inputs:
    type: object
    required:
    - windowStart
    - windowEnd
    - acceptComment
    properties:
      windowStart:
        type: string
        description: Start of the calendar view window, ISO 8601 (e.g. 2026-07-01T00:00:00).
      windowEnd:
        type: string
        description: End of the calendar view window, ISO 8601 (e.g. 2026-07-02T00:00:00).
      acceptComment:
        type: string
        description: Comment to include in the acceptance response to the organizer.
  steps:
  - stepId: listView
    description: >-
      List events in the supplied calendar view window, returning the first
      event ordered by start time.
    operationId: listCalendarView
    parameters:
    - name: startDateTime
      in: query
      value: $inputs.windowStart
    - name: endDateTime
      in: query
      value: $inputs.windowEnd
    - name: $orderby
      in: query
      value: start/dateTime
    - name: $top
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      eventId: $response.body#/value/0/id
    onSuccess:
    - name: hasEvent
      type: goto
      stepId: getEvent
      criteria:
      - context: $response.body
        condition: $.value.length > 0
        type: jsonpath
    - name: noEvent
      type: end
      criteria:
      - context: $response.body
        condition: $.value.length == 0
        type: jsonpath
  - stepId: getEvent
    description: >-
      Retrieve the first event to inspect its subject, organizer, and response
      status before responding.
    operationId: getEvent
    parameters:
    - name: event-id
      in: path
      value: $steps.listView.outputs.eventId
    - name: $select
      in: query
      value: subject,organizer,start,end,responseStatus
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      subject: $response.body#/subject
  - stepId: acceptEvent
    description: >-
      Accept the event and send a response to the organizer with the supplied
      comment.
    operationId: acceptEvent
    parameters:
    - name: event-id
      in: path
      value: $steps.listView.outputs.eventId
    requestBody:
      contentType: application/json
      payload:
        comment: $inputs.acceptComment
        sendResponse: true
    successCriteria:
    - condition: $statusCode == 202
    outputs:
      acceptStatus: $statusCode
  outputs:
    eventId: $steps.listView.outputs.eventId
    subject: $steps.getEvent.outputs.subject
    acceptStatus: $steps.acceptEvent.outputs.acceptStatus