Knock Schedules API

The Schedules API from Knock — 3 operation(s) for schedules.

Operations 6

GET /v1/objects/{collection}/{id}/schedules List object schedules #
DELETE /v1/schedules Delete schedules #
GET /v1/schedules List schedules #
POST /v1/schedules Create schedules #
PUT /v1/schedules Update schedules #
GET /v1/users/{user_id}/schedules List user schedules #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/knock-app-schedules-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

knock-app-schedules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Knock Audiences Accounts Schedules API
  version: '1.0'
  description: Manage static Audiences and their members. Audiences power lifecycle messaging — when a user joins an audience, configured workflows fire automatically.
  contact:
    name: Knock
    url: https://knock.app
  license:
    name: Proprietary
servers:
- url: https://api.knock.app
  variables: {}
security:
- BearerAuth: []
tags:
- name: Schedules
paths:
  /v1/objects/{collection}/{id}/schedules:
    get:
      callbacks: {}
      description: Returns a paginated list of schedules for an object.
      operationId: listObjectSchedules
      parameters:
      - description: The ID of the object to list schedules for.
        in: path
        name: id
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The collection of the object to list schedules for.
        in: path
        name: collection
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: Filter schedules by tenant id.
        in: query
        name: tenant
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: Filter schedules by workflow id.
        in: query
        name: workflow
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries after.
        in: query
        name: after
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries before.
        in: query
        name: before
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The number of items per page (defaults to 50).
        in: query
        name: page_size
        required: false
        schema:
          type: integer
          x-struct: null
          x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSchedulesResponse'
          description: OK
      summary: List object schedules
      tags:
      - Schedules
      x-ratelimit-tier: 4
  /v1/schedules:
    delete:
      callbacks: {}
      description: Permanently deletes one or more schedules identified by the provided schedule IDs. This operation cannot be undone.
      operationId: deleteSchedules
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteSchedulesRequest'
        description: Params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchedulesResponse'
          description: OK
      summary: Delete schedules
      tags:
      - Schedules
      x-ratelimit-tier: 3
    get:
      callbacks: {}
      description: Returns a paginated list of schedules for the current environment, filtered by workflow and optionally by recipients and tenant.
      operationId: listSchedules
      parameters:
      - description: Filter by workflow key.
        in: query
        name: workflow
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: Filter by recipient references.
        in: query
        name: recipients[]
        required: false
        schema:
          description: A list of recipient references to filter by.
          items:
            $ref: '#/components/schemas/RecipientReference'
          type: array
          x-struct: null
          x-validate: null
      - description: Filter by tenant ID.
        in: query
        name: tenant
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries after.
        in: query
        name: after
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries before.
        in: query
        name: before
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The number of items per page (defaults to 50).
        in: query
        name: page_size
        required: false
        schema:
          type: integer
          x-struct: null
          x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSchedulesResponse'
          description: OK
      summary: List schedules
      tags:
      - Schedules
      x-ratelimit-tier: 4
    post:
      callbacks: {}
      description: Creates one or more schedules for a workflow with the specified recipients, timing, and data. Schedules can be one-time or recurring. This endpoint also handles [inline identifications](/managing-recipients/identifying-recipients#inline-identifying-recipients) for the `actor`, `recipient`, and `tenant` fields.
      operationId: createSchedules
      parameters: []
      requestBody:
        content:
          application/json:
            example:
              data:
                key: value
              ending_at: null
              recipients:
              - user_123
              repeats:
              - __typename: ScheduleRepeat
                day_of_month: null
                days:
                - mon
                - tue
                - wed
                - thu
                - fri
                - sat
                - sun
                frequency: daily
                hours: null
                interval: 1
                minutes: null
              scheduled_at: null
              tenant: acme_corp
              workflow: comment-created
            schema:
              $ref: '#/components/schemas/CreateSchedulesRequest'
        description: Params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchedulesResponse'
          description: OK
      summary: Create schedules
      tags:
      - Schedules
      x-ratelimit-tier: 3
    put:
      callbacks: {}
      description: Updates one or more existing schedules with new timing, data, or other properties. All specified schedule IDs will be updated with the same values. This endpoint also handles [inline identifications](/managing-recipients/identifying-recipients#inline-identifying-recipients) for the `actor`, `recipient`, and `tenant` fields.
      operationId: updateSchedules
      parameters: []
      requestBody:
        content:
          application/json:
            example:
              actor: null
              data:
                key: value
              ending_at: null
              repeats:
              - __typename: ScheduleRepeat
                day_of_month: null
                days:
                - mon
                - tue
                - wed
                - thu
                - fri
                - sat
                - sun
                frequency: daily
                hours: null
                interval: 1
                minutes: null
              schedule_ids:
              - 123e4567-e89b-12d3-a456-426614174000
              scheduled_at: null
              tenant: acme_corp
            schema:
              $ref: '#/components/schemas/UpdateSchedulesRequest'
        description: Params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchedulesResponse'
          description: OK
      summary: Update schedules
      tags:
      - Schedules
      x-ratelimit-tier: 3
  /v1/users/{user_id}/schedules:
    get:
      callbacks: {}
      description: Returns a paginated list of schedules for a specific user, in descending order.
      operationId: listUserSchedules
      parameters:
      - description: The user ID to list schedules for.
        in: path
        name: user_id
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The workflow key to filter schedules for.
        in: query
        name: workflow
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The tenant ID to filter schedules for.
        in: query
        name: tenant
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries after.
        in: query
        name: after
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries before.
        in: query
        name: before
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The number of items per page (defaults to 50).
        in: query
        name: page_size
        required: false
        schema:
          type: integer
          x-struct: null
          x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSchedulesResponse'
          description: OK
      summary: List user schedules
      tags:
      - Schedules
      x-ratelimit-tier: 4
components:
  schemas:
    Schedule:
      description: A schedule represents a recurring workflow execution.
      example:
        __typename: Schedule
        actor: null
        data: null
        id: 123e4567-e89b-12d3-a456-426614174000
        inserted_at: '2021-01-01T00:00:00Z'
        last_occurrence_at: null
        next_occurrence_at: null
        recipient:
          __typename: User
          avatar: null
          created_at: null
          email: jane@ingen.net
          id: jane
          name: Jane Doe
          phone_number: null
          timezone: null
          updated_at: '2024-05-22T12:00:00Z'
        repeats:
        - __typename: ScheduleRepeat
          day_of_month: null
          days:
          - mon
          - tue
          - wed
          - thu
          - fri
          - sat
          - sun
          frequency: daily
          hours: null
          interval: 1
          minutes: null
        tenant: null
        updated_at: '2021-01-01T00:00:00Z'
        workflow: workflow_123
      properties:
        __typename:
          description: The typename of the schema.
          example: Schedule
          type: string
          x-struct: null
          x-validate: null
        actor:
          description: A map of properties describing a user or an object to identify in Knock and mark as who or what performed the action.
          oneOf:
          - $ref: '#/components/schemas/Recipient'
          - x-struct: null
            x-validate: null
          x-struct: null
          x-validate: null
        data:
          additionalProperties: true
          description: An optional map of data to pass into the workflow execution. There is a 10MB limit on the size of the full `data` payload. Any individual string value greater than 1024 bytes in length will be [truncated](/developer-tools/api-logs#log-truncation) in your logs.
          type:
          - object
          - 'null'
          x-struct: null
          x-validate: null
        id:
          description: Unique identifier for the schedule.
          format: uuid
          type: string
          x-struct: null
          x-validate: null
        inserted_at:
          description: Timestamp when the resource was created.
          format: date-time
          type: string
          x-struct: null
          x-validate: null
        last_occurrence_at:
          description: The last occurrence of the schedule.
          format: date-time
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        next_occurrence_at:
          description: The next occurrence of the schedule.
          format: date-time
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        recipient:
          $ref: '#/components/schemas/Recipient'
        repeats:
          description: The repeat rule for the schedule.
          items:
            $ref: '#/components/schemas/ScheduleRepeatRule'
          type: array
          x-struct: null
          x-validate: null
        tenant:
          description: The tenant to trigger the workflow for. Triggering with a tenant will use any tenant-level overrides associated with the tenant object, and all messages produced from workflow runs will be tagged with the tenant.
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        updated_at:
          description: The timestamp when the resource was last updated.
          format: date-time
          type: string
          x-struct: null
          x-validate: null
        workflow:
          description: The workflow the schedule is applied to.
          type: string
          x-struct: null
          x-validate: null
      required:
      - id
      - workflow
      - recipient
      - repeats
      - inserted_at
      - updated_at
      title: Schedule
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.Schedule
      x-validate: null
    PreferenceSetChannelTypeSetting:
      description: A set of settings for a channel type. Currently, this can only be a list of conditions to apply.
      example:
        conditions:
        - argument: US
          operator: equal_to
          variable: recipient.country_code
      properties:
        conditions:
          description: A list of conditions to apply to a channel type.
          items:
            $ref: '#/components/schemas/Condition'
          type: array
          x-struct: null
          x-validate: null
      required:
      - conditions
      title: PreferenceSetChannelTypeSetting
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.PreferenceSetChannelTypes.PreferenceSetChannelTypeSetting
      x-validate: null
    MsTeamsTokenConnection:
      description: Microsoft Teams token connection.
      example:
        ms_teams_channel_id: 123e4567-e89b-12d3-a456-426614174000
        ms_teams_team_id: 123e4567-e89b-12d3-a456-426614174000
        ms_teams_tenant_id: null
        ms_teams_user_id: null
      properties:
        ms_teams_channel_id:
          description: Microsoft Teams channel ID.
          format: uuid
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        ms_teams_team_id:
          description: Microsoft Teams team ID.
          format: uuid
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        ms_teams_tenant_id:
          description: Microsoft Teams tenant ID.
          format: uuid
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        ms_teams_user_id:
          description: Microsoft Teams user ID.
          format: uuid
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
      title: MsTeamsTokenConnection
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.MsTeamsChannelData.TokenConnection
      x-validate: null
    InlineIdentifyUserRequest:
      additionalProperties: true
      description: A set of parameters to inline-identify a user with. Inline identifying the user will ensure that the user is available before the request is executed in Knock. It will perform an upsert for the user you're supplying, replacing any properties specified.
      example:
        channel_data:
          97c5837d-c65c-4d54-aa39-080eeb81c69d:
            tokens:
            - push_token_123
        email: jane@ingen.net
        id: user_1
        name: Jane Doe
        preferences:
          default:
            channel_types:
              email: true
            workflows:
              dinosaurs-loose:
                channel_types:
                  email: true
        timezone: America/New_York
      properties:
        avatar:
          description: A URL for the avatar of the user.
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        channel_data:
          allOf:
          - $ref: '#/components/schemas/InlineChannelDataRequest'
          description: Channel-specific information that's needed to deliver a notification to an end provider.
          x-struct: null
          x-validate: null
        created_at:
          description: The creation date of the user from your system.
          format: date-time
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        email:
          description: The primary email address for the user.
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        id:
          description: The unique identifier of the user.
          type: string
          x-struct: null
          x-validate: null
        locale:
          description: The locale of the user. Used for [message localization](/concepts/translations).
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        name:
          description: Display name of the user.
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        phone_number:
          description: The [E.164](https://www.twilio.com/docs/glossary/what-e164) phone number of the user (required for SMS channels).
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        preferences:
          allOf:
          - $ref: '#/components/schemas/InlinePreferenceSetRequest'
          description: A set of preferences for the user.
          x-struct: null
          x-validate: null
        timezone:
          description: The timezone of the user. Must be a valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). Used for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
      required:
      - id
      title: InlineIdentifyUserRequest
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.InlineIdentifyUserRequest
      x-validate: null
    TenantRequest:
      additionalProperties: true
      description: A tenant to be set in the system. You can supply any additional properties on the tenant object.
      example:
        id: tenant_123
        name: ACME Corp, Inc.
        settings:
          branding:
            icon_url: https://example.com/icon.png
            logo_url: https://example.com/logo.png
            primary_color: '#000000'
            primary_color_contrast: '#FFFFFF'
      properties:
        channel_data:
          description: The channel data for the tenant.
          oneOf:
          - x-struct: null
            x-validate: null
          - $ref: '#/components/schemas/InlineChannelDataRequest'
          x-struct: null
          x-validate: null
        id:
          description: The unique identifier for the tenant.
          type: string
          x-struct: null
          x-validate: null
        name:
          description: An optional name for the tenant.
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        preferences:
          description: The preferences for the tenant.
          oneOf:
          - x-struct: null
            x-validate: null
          - $ref: '#/components/schemas/InlinePreferenceSetRequest'
          x-struct: null
          x-validate: null
        settings:
          description: The settings for the tenant. Includes branding and preference set.
          properties:
            branding:
              description: The branding for the tenant.
              properties:
                icon_url:
                  description: The icon URL for the tenant. Must point to a valid image with an image MIME type.
                  type:
                  - string
                  - 'null'
                  x-struct: null
                  x-validate: null
                logo_url:
                  description: The logo URL for the tenant. Must point to a valid image with an image MIME type.
                  type:
                  - string
                  - 'null'
                  x-struct: null
                  x-validate: null
                primary_color:
                  description: The primary color for the tenant, provided as a hex value.
                  type:
                  - string
                  - 'null'
                  x-struct: null
                  x-validate: null
                primary_color_contrast:
                  description: The primary color contrast for the tenant, provided as a hex value.
                  type:
                  - string
                  - 'null'
                  x-struct: null
                  x-validate: null
              type: object
              x-struct: null
              x-validate: null
            preference_set:
              description: The preference set for the tenant. Used to override the default preference set.
              oneOf:
              - x-struct: null
                x-validate: null
              - $ref: '#/components/schemas/PreferenceSetRequest'
              x-struct: null
              x-validate: null
          type: object
          x-struct: null
          x-validate: null
      required:
      - id
      title: TenantRequest
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.TenantRequest
      x-validate: null
    PreferenceSetChannels:
      additionalProperties:
        description: Whether the specific channel (by channel_id) is enabled for the preference set, or a settings object with conditions.
        oneOf:
        - type: boolean
          x-struct: null
          x-validate: null
        - $ref: '#/components/schemas/PreferenceSetChannelSetting'
        x-struct: null
        x-validate: null
      description: Channel preferences.
      example:
        2f641633-95d3-4555-9222-9f1eb7888a80:
          conditions:
          - argument: US
            operator: equal_to
            variable: recipient.country_code
        aef6e715-df82-4ab6-b61e-b743e249f7b6: true
      title: PreferenceSetChannels
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.PreferenceSetChannels
      x-validate: null
    PreferenceSetWorkflowCategorySetting:
      description: Workflow or category preferences within a preference set
      example:
        channel_types:
          email: false
        channels:
          aef6e715-df82-4ab6-b61e-b743e249f7b6: true
      oneOf:
      - example: false
        type: boolean
        x-struct: null
        x-validate: null
      - description: The settings object for a workflow or category, where you can specify channel types or conditions.
        example:
          channel_types:
            email: false
          channels:
            aef6e715-df82-4ab6-b61e-b743e249f7b6: true
          conditions: null
        properties:
          channel_types:
            anyOf:
            - $ref: '#/components/schemas/PreferenceSetChannelTypes'
            - x-struct: null
              x-validate: null
            description: An object where the key is the channel type and the values are the preference settings for that channel type.
            x-struct: null
            x-validate: null
          channels:
            anyOf:
            - $ref: '#/components/schemas/PreferenceSetChannels'
            - x-struct: null
              x-validate: null
            description: An object where the key is the channel ID and the values are the preference settings for that channel ID.
            x-struct: null
            x-validate: null
          conditions:
            description: A list of conditions to apply to a channel type.
            items:
              $ref: '#/components/schemas/Condition'
            type:
            - array
            - 'null'
            x-struct: null
            x-validate: null
        title: PreferenceSetWorkflowCategorySettingObject
        type: object
        x-struct: null
        x-validate: null
      title: PreferenceSetWorkflowCategorySetting
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.PreferenceSetWorkflowCategorySetting
      x-validate: null
    OneSignalChannelDataPlayerIdsOnly:
      description: OneSignal channel data.
      example:
        player_ids:
        - 123e4567-e89b-12d3-a456-426614174000
      properties:
        player_ids:
          description: A list of OneSignal player IDs.
          example:
          - 123e4567-e89b-12d3-a456-426614174000
          items:
            description: OneSignal player ID.
            format: uuid
            type: string
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      required:
      - player_ids
      title: OneSignalChannelDataPlayerIdsOnly
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.OneSignalChannelDataPlayerIdsOnly
      x-validate: null
    DiscordChannelConnection:
      description: Discord channel connection.
      example:
        channel_id: '123456789012345678'
      properties:
        channel_id:
          description: Discord channel ID.
          example: '123456789012345678'
          type: string
          x-struct: null
          x-validate: null
      required:
      - channel_id
      title: DiscordChannelConnection
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.DiscordChannelData.ChannelConnection
      x-validate: null
    Condition:
      description: A condition to be evaluated.
      example:
        argument: frog_genome
        operator: contains
        variable: specimen.dna_sequence
      properties:
        argument:
          description: The argument value to compare against in the condition.
          example: some_property
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        operator:
          description: The operator to use in the condition evaluation.
          enum:
          - equal_to
          - not_equal_to
          - greater_than
          - less_than
          - greater_than_or_equal_to
          - less_than_or_equal_to
          - contains
          - not_contains
          - empty
          - not_empty
          - exists
          - not_exists
          - contains_all
          - is_timestamp
          - is_not_timestamp
          - is_timestamp_on_or_after
          - is_timestamp_before
          - is_timestamp_on_or_after_date
          - is_timestamp_before_date
          - is_timestamp_between
          - is_between
          - is_audience_member
          - is_not_audience_member
          example: equal_to
          type: string
          x-struct: null
          x-validate: null
        variable:
          description: The variable to be evaluated in the condition.
          example: recipient.property
          type: string
          x-struct: null
          x-validate: null
      required:
      - variable
      - operator
      - argument
      title: Condition
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.Condition
      x-validate: null
    PushChannelDataDevicesOnly:
      description: Push channel data.
      example:
        devices:
        - locale: en-US
          timezone: America/Los_Angeles
          token: push_token_1
      properties:
        devices:
          description: A list of devices. Each device contains a token, and optionally a locale and timezone.
          items:
            properties:
              locale:
                description: The locale of the object. Used for [message localization](/concepts/translations).
                type:
                - string
                - 'null'
                x-struct: null
                x-validate: null
              timezone:
                description: The timezone of the object. Must be a valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). Used for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
                type:
                - string
                - 'null'
                x-struct: null
                x-validate: null
              token:
                description: The device token to send the push notification to.
                type: string
                x-struct: null
                x-validate: null
            required:
            - token
            type: object
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      required:
      - devices
      title: PushChannelDataDevicesOnly
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.PushChannelDataDevicesOnly
      x-validate: null
    DiscordIncomingWebhookConnection:
      description: Discord incoming webhook connection.
      example:
        incoming_webhook:
          url: https://example.com/webhook
      properties:
        incoming_webhook:
          description: Discord incoming webhook object.
          properties:
            url:
              description: Incoming webhook URL.
              example: https://example.com/webhook
              type: string
              x-struct: null
              x-validate: null
          required:
          - url
          type: object
          x-struct: null
          x-validate: null
      required:
      - incoming_webhook
      title: DiscordIncomingWebhookConnection
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.DiscordChannelData.IncomingWebhookConnection
      x-validate: null
    MsTeamsIncomingWebhookConnection:
      description: Microsoft Teams incoming webhook connection.
      example:
        incoming_webhook:
          url: https://example.com/webhook
      properties:
        incoming_webhook:
          description: Microsoft Teams incoming webhook.
          properties:
            url:
              description: Microsoft Teams incoming webhook URL.
              example: https://example.com/webhook
              type: string
              x-struct: null
              x-validate: null
          required:
          - url
          type: object
          x-struct: null
          x-validate: null
      required:
      - incoming_webhook
      title: MsTeamsIncomingWebhookConnection
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.MsTeamsChannelData.IncomingWebhookConnection
      x-validate: null
    AWSSNSPushChannelDataDevicesOnly:
      description: AWS SNS push channel data.
      example:
        devices:
        - locale: en-US
          target_arn: arn:aws:sns:us-west-2:123456789012:endpoint/GCM/gcmpushapp/5e3e9847-3183-3f18-a7e8-671c3a57d4b3
          timezone: America/Los_Angeles
      properties:
        devices:
          description: A list of devices. Each device contains a target_arn, and optionally a locale and timezone.
          items:
            properties:
              locale:
                description: The locale of the object. Used for [message localization](/concepts/translations).
                type:
                - string
                - 'null'
                x-struct: null
                x-validate: null
              target_arn:
                description: The ARN of a platform endpoint associated with a platform application and a device token. See [Setting up an Amazon SNS platfo

# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/knock-app/refs/heads/main/openapi/knock-app-schedules-api-openapi.yml