Laurel Timers API

The Timers API from Laurel — 11 operation(s) for timers.

Operations 16

GET /api/v1/timers #
POST /api/v1/timers #
GET /api/v1/timers/{timerId} #
PATCH /api/v1/timers/{timerId} #
DELETE /api/v1/timers/{timerId} Deletes a user Timer by Id and returns the deleted Timer #
POST /api/v2/timers #
GET /api/v2/timers #
PATCH /api/v2/timers/{timerId} #
POST /api/v2/timers/{timerId}/stop #
POST /api/v3/timers #
GET /api/v3/timers #
POST /api/v3/timers/start #
POST /api/v3/timers/stop #
PATCH /api/v3/timers/adjust #
GET /api/v3/timers/running #
DELETE /api/v3/timers/{timerId} #

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/laurel-timers-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

laurel-timers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Identity Service Ably Timers API
  description: ''
  version: '1'
  contact: {}
servers: []
security:
- ApiBearerAuth: []
tags:
- name: Timers
paths:
  /api/v1/timers:
    get:
      deprecated: true
      operationId: TimerController_findMany_v1
      parameters:
      - name: date
        required: true
        in: query
        description: the date for which timers will be returned
        schema:
          format: iso-date
          example: '2022-08-12'
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Timer'
      summary: ''
      tags:
      - Timers
    post:
      deprecated: true
      operationId: TimerController_createOne_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTimerDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Timer'
      summary: ''
      tags:
      - Timers
  /api/v1/timers/{timerId}:
    get:
      deprecated: true
      operationId: TimerController_findOne_v1
      parameters:
      - name: timerId
        required: true
        in: path
        description: identifier of the timer
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Timer'
      summary: ''
      tags:
      - Timers
    patch:
      deprecated: true
      operationId: TimerController_updateOne_v1
      parameters:
      - name: timerId
        required: true
        in: path
        description: identifier of the timer
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTimerDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Timer'
      summary: ''
      tags:
      - Timers
    delete:
      deprecated: true
      operationId: TimerController_deleteTimerById_v1
      parameters:
      - name: timerId
        required: true
        in: path
        description: identifier of the timer
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Timer'
      summary: Deletes a user Timer by Id and returns the deleted Timer
      tags:
      - Timers
  /api/v2/timers:
    post:
      operationId: V2TimerController_startTimer_v2
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2StartTimerDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2TimerResponseDto'
      tags:
      - Timers
    get:
      operationId: V2TimerController_getTimers_v2
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V2TimerResponseDto'
      tags:
      - Timers
  /api/v2/timers/{timerId}:
    patch:
      operationId: V2TimerController_updateOne_v2
      parameters:
      - name: timerId
        required: true
        in: path
        description: the identifier of v2 timer
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTimerRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2TimerResponseDto'
      tags:
      - Timers
  /api/v2/timers/{timerId}/stop:
    post:
      operationId: V2TimerController_stopTimer_v2
      parameters:
      - name: timerId
        required: true
        in: path
        description: the identifier of v2 timer
        schema:
          format: objectid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StopTimerRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimerActivity'
      tags:
      - Timers
  /api/v3/timers:
    post:
      operationId: V3TimerController_initializeTimer_v3
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/V3InitializeAnonymousTimerRequestDto'
              - $ref: '#/components/schemas/V3InitializeEntryTimerRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V3TimerDraftResponseDto'
      tags:
      - Timers
    get:
      operationId: V3TimerController_getTimers_v3
      parameters:
      - name: date
        required: true
        in: query
        schema:
          format: iso-date
          example: '2022-08-12'
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                items:
                  oneOf:
                  - $ref: '#/components/schemas/V3TimerDraftResponseDto'
                  - $ref: '#/components/schemas/V3RunningTimerResponseDto'
                type: array
      tags:
      - Timers
  /api/v3/timers/start:
    post:
      operationId: V3TimerController_startTimer_v3
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/V3StartTimerWithDateRequestDto'
              - $ref: '#/components/schemas/V3StartTimerWithTimerDraftIdRequestDto'
              - $ref: '#/components/schemas/V3StartTimerWithEntryIdRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/V3StartTimerSuccessResponseDto'
                - $ref: '#/components/schemas/V3StartTimerNotFoundResponseDto'
      tags:
      - Timers
  /api/v3/timers/stop:
    post:
      operationId: V3TimerController_stopTimer_v3
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V3StopTimerRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/V3StopTimerSuccessResponseDto'
                - $ref: '#/components/schemas/V3StopTimerNotFoundResponseDto'
      tags:
      - Timers
  /api/v3/timers/adjust:
    patch:
      operationId: V3TimerController_adjustTimer_v3
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/V3AdjustTimerDraftRequestDto'
              - $ref: '#/components/schemas/V3AdjustRunningTimerRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/V3TimerDraftResponseDto'
                - $ref: '#/components/schemas/V3RunningTimerResponseDto'
      tags:
      - Timers
  /api/v3/timers/running:
    get:
      operationId: V3TimerController_getRunningTimers_v3
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/V3RunningTimerResponseDto'
      tags:
      - Timers
  /api/v3/timers/{timerId}:
    delete:
      operationId: V3TimerController_deleteTimer_v3
      parameters:
      - name: timerId
        required: true
        in: path
        description: the identifier of v3 timer
        schema:
          format: objectid
          type: string
      responses:
        '200':
          description: ''
      tags:
      - Timers
components:
  schemas:
    SharedFromResponseDto:
      type: object
      properties:
        entryId:
          type: string
          description: id of the source entry that was shared
          format: objectid
        entryUserId:
          type: string
          description: id of the user who owns the source entry
          format: objectid
        sharerId:
          type: string
          description: id of the principal who performed the share action
          format: objectid
        sharerType:
          description: capacity in which the sharer acted
          enum:
          - user
          - admin
          - delegate
          type: string
        sharedAt:
          type: string
          description: date and time the share was initiated
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        entryUserName:
          type:
          - string
          - 'null'
          description: display name of the entry owner; resolved at read-time, absent on failure
        sharerName:
          type:
          - string
          - 'null'
          description: display name of the principal who performed the share; resolved at read-time, absent on failure
      required:
      - entryId
      - entryUserId
      - sharerId
      - sharerType
      - sharedAt
    NestedActivitySource:
      type: object
      properties:
        _id:
          type: string
          description: source's id
          format: objectid
        type:
          description: type of entry source
          enum:
          - activity
          type: string
          default: activity
        creationMethod:
          description: the creation method of the activity
          enum:
          - timer
          - tracked
          - user
          type: string
        category:
          type:
          - string
          - 'null'
          description: category of this activity, if any
        technology:
          type:
          - string
          - 'null'
          description: technology of this activity, if any
        source:
          type:
          - string
          - 'null'
          description: source of this activity (e.g. 'macos', 'windows'), if any
        mechanism:
          type:
          - string
          - 'null'
          description: mechanism of this activity (e.g. browser used to access web app), if any
        title:
          type: string
          description: activity's title
        detail:
          type: string
          description: activity's detail
        startedAt:
          type: string
          description: date and time this activity started
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        stoppedAt:
          type: string
          description: date and time this activity stopped
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        clusterId:
          type:
          - string
          - 'null'
          description: activity's clusterId
        fromSuggestions:
          type:
          - boolean
          - 'null'
          description: whether this activity source was added from suggestions
        fromThemes:
          type:
          - boolean
          - 'null'
          description: whether this activity source was added from themes
        hasOverlap:
          type:
          - boolean
          - 'null'
          description: activity's overlap state
        overlapTimeInSeconds:
          type:
          - number
          - 'null'
          description: activity's overlap time in seconds
          format: int64
        threadId:
          type:
          - string
          - 'null'
          description: activity's thread id
        disableThreading:
          type:
          - boolean
          - 'null'
          description: if true, disables threading for this activity
        assignedAt:
          type:
          - string
          - 'null'
          description: 'Datetime this activity was assigned to the entry it currently belongs to.

            Unset on entries that predate the field; never back-filled.'
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
      required:
      - _id
      - type
      - creationMethod
      - title
      - detail
      - startedAt
      - stoppedAt
    ValidationSuccessInfo:
      type: object
      properties:
        status:
          enum:
          - validation-success
          type: string
      required:
      - status
    EntryDto:
      type: object
      properties:
        _id:
          type: string
          description: entry's id
          format: objectid
        schemaVersion:
          type: string
          description: entry's schemaVersion
        customerId:
          type: string
          description: id of customer who the owner belongs to
          format: objectid
        userId:
          type: string
          description: if of user who owns the entry
          format: objectid
        enrichmentCorrelationId:
          type:
          - string
          - 'null'
          description: entry's enrichmentCorrelationId to be used by enrichment service
        statusInfo:
          description: entry's status info
          oneOf:
          - $ref: '#/components/schemas/ReleaseFailedInfo'
          - $ref: '#/components/schemas/ReleaseValidationPendingInfo'
          - $ref: '#/components/schemas/ReleasePendingInfo'
          - $ref: '#/components/schemas/ReleaseSuccessInfo'
          - $ref: '#/components/schemas/ReleaseSuccessLockedInfo'
          - $ref: '#/components/schemas/ValidationFailedInfo'
          - $ref: '#/components/schemas/ValidationPendingInfo'
          - $ref: '#/components/schemas/ValidationSuccessInfo'
        creationMethod:
          description: the creation method of the entry
          enum:
          - async
          - user
          - pms
          - shared
          type: string
        createdAsTimer:
          type:
          - boolean
          - 'null'
          description: if true, this entry was created by a user for use as a timer
        workDate:
          type: string
          description: the date the entry's work was done, this is required for released entries
          example: '2022-08-12'
          format: iso-date
        isLocked:
          type: boolean
          description: if true, this entry is locked and cannot be updated
        summary:
          type: string
          description: entry's summary
        unitIncrementCountFromSources:
          type: number
          description: sum of unit increments from this entry's sources
          format: double
        unitIncrementCountAdjustments:
          type: number
          description: user modified overrides to entry unit increment total
          format: double
        sources:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/NestedActivitySource'
            - $ref: '#/components/schemas/NestedEntrySource'
            - $ref: '#/components/schemas/NestedTimerSource'
        externalId:
          type:
          - string
          - 'null'
          description: entry's external id
        createdAt:
          type: string
          description: date and time this entry was created
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        updatedAt:
          type: string
          description: date and time this entry was updated last
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        overlapTimeInSeconds:
          type:
          - number
          - 'null'
          description: entry's duration in seconds with overlap
          format: int64
        isDeleted:
          type:
          - boolean
          - 'null'
          description: set to true if entry is soft deleted
        notes:
          type:
          - string
          - 'null'
          description: entry's notes
        splitFromActivityId:
          type:
          - string
          - 'null'
          description: 'If set, the id of the captured activity this entry was split from.

            Shared across all entries/activities produced by one split (sibling key),

            and the seam for a future undo/merge. The source activity is soft-deleted,

            so its id uniquely identifies the split.'
          format: objectid
        supersededByEntryId:
          type:
          - string
          - 'null'
          description: 'Surviving entry this one was merged into. Set so PMS sync-in leaves the

            superseded entry deleted instead of resurrecting it as a duplicate.'
          format: objectid
        releaseCount:
          type:
          - number
          - 'null'
          description: entry's release count
          format: int64
          minimum: 0
        lastSyncedAt:
          type:
          - string
          - 'null'
          description: date and time when the entry was last synced with the PMS
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        timerDurationAdjustmentInSeconds:
          type:
          - number
          - 'null'
          description: adjustment in seconds to be applied to timer duration
          format: int64
        releasedFrom:
          type:
          - string
          - 'null'
          description: source of the release request
          enum:
          - time-control
          - timesheet
        complianceRules:
          description: entry's compliance rules
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ComplianceRule'
        deletedForRetentionAt:
          type:
          - string
          - 'null'
          description: date and time entry data was deleted for retention
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        timerCarryover:
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/EntryTimerCarryover'
        autoStoppedReason:
          type:
          - string
          - 'null'
          description: 'Indicates the reason this entry''s timer was automatically stopped by the

            system (as opposed to being stopped by the user). `null`/undefined for

            entries whose timers were stopped manually or by the overnight job.'
          enum:
          - twelve_hour_limit
        autostopDismissedAt:
          type:
          - string
          - 'null'
          description: 'Set when the user explicitly dismisses the auto-stop strip via the × button.

            Once set, the strip is never re-shown for this entry.'
          example: '2022-08-12T20:44:48Z'
          format: iso-date-time
        timezoneAtCreation:
          type:
          - string
          - 'null'
          description: 'The user''s IANA timezone at the time this entry was created.

            Immutable after creation. Null when the user had no timezone configured.'
        isShared:
          type:
          - boolean
          - 'null'
          description: 'Set to `true` when the entry has been shared with at least one recipient.

            Written synchronously by the share endpoint; never reset.

            Absent on entries that pre-date the sharing feature or have never been shared.'
        externalSources:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ExternalSource'
        workCodes:
          description: all of the codes assigned to the entry
          type: array
          items:
            $ref: '#/components/schemas/CodeAssignment'
        initiative:
          description: entry's initiative information
          oneOf:
          - $ref: '#/components/schemas/UserInitiativeDto'
          - $ref: '#/components/schemas/PmsInitiativeDto'
        sharedFrom:
          description: 'Present only on recipient-side copies. Contains the source entry context

            and display names resolved at read-time via identity-service.'
          type:
          - object
          - 'null'
          allOf:
          - $ref: '#/components/schemas/SharedFromResponseDto'
      required:
      - _id
      - schemaVersion
      - customerId
      - userId
      - statusInfo
      - creationMethod
      - workDate
      - isLocked
      - summary
      - unitIncrementCountFromSources
      - unitIncrementCountAdjustments
      - sources
      - createdAt
      - updatedAt
      - workCodes
      - initiative
    UserInitiativePropsDto:
      type: object
      properties:
        _id:
          type: string
          description: identifier of the initiative props
          format: objectid
        colorHex:
          type: string
          description: the hex color code for the initiative props
        tags:
          type: array
          description: array of initiative props tags
          items:
            type: string
            enum:
            - pinned
        userId:
          type: string
          description: identifier of the user who owns the initiative props
          format: objectid
      required:
      - _id
      - colorHex
      - tags
      - userId
    V3InitializeEntryTimerRequestDto:
      type: object
      properties:
        date:
          type: string
          description: Date (iso date no time, ie. 2025-01-01) that the timer is associated with
          example: '2022-08-12'
          format: iso-date
        summary:
          type:
          - string
          - 'null'
          description: Optionally provide a summary associated with this timer
        manualAdjustmentMs:
          type:
          - number
          - 'null'
          description: Optionally include a manual adjustment to persist (Can't be negative)
          format: double
        initiativeId:
          type: string
          description: The initiative to associate with the Entry created with this timer
          format: objectid
      required:
      - date
      - initiativeId
    V2StartTimerDto:
      type: object
      properties:
        date:
          type: string
          description: the date on which the timer is being started
          example: '2022-08-12'
          format: iso-date
        timerDraftId:
          type:
          - string
          - 'null'
          description: the identifier of the timer draft for which a timer is being started. cannot be set if entryId or initiativeId is already set
          format: objectid
        initiativeId:
          type:
          - string
          - 'null'
          description: the identifier of the initiative for which a timer is being started. cannot be set if entryId or timerDraftId is already set
          format: objectid
        entryId:
          type:
          - string
          - 'null'
          description: the identifier of the entry for which a timer is being started. cannot be set if initiativeId or timerDraftId is already set
          format: objectid
        timezone:
          type:
          - string
          - 'null'
          description: the timezone in which the timer is being started
          enum:
          - Africa/Abidjan
          - Africa/Accra
          - America/Adak
          - Africa/Addis_Ababa
          - Australia/Adelaide
          - Asia/Aden
          - Africa/Algiers
          - Asia/Almaty
          - Asia/Amman
          - Europe/Amsterdam
          - America/Anchorage
          - Europe/Andorra
          - America/Anguilla
          - Indian/Antananarivo
          - America/Antigua
          - Pacific/Apia
          - America/Aruba
          - Asia/Ashgabat
          - Africa/Asmara
          - America/Asuncion
          - Europe/Athens
          - America/Atikokan
          - Pacific/Auckland
          - Atlantic/Azores
          - Asia/Baghdad
          - Asia/Bahrain
          - Asia/Baku
          - Africa/Bamako
          - Asia/Bangkok
          - Africa/Bangui
          - Africa/Banjul
          - America/Barbados
          - Asia/Beirut
          - Europe/Belgrade
          - America/Belize
          - Europe/Berlin
          - Atlantic/Bermuda
          - Asia/Bishkek
          - Africa/Bissau
          - America/Blanc-Sablon
          - Africa/Blantyre
          - America/Bogota
          - Pacific/Bougainville
          - Europe/Bratislava
          - Africa/Brazzaville
          - Australia/Brisbane
          - Asia/Brunei
          - Europe/Brussels
          - Europe/Bucharest
          - Europe/Budapest
          - America/Argentina/Buenos_Aires
          - Africa/Bujumbura
          - Africa/Cairo
          - Atlantic/Canary
          - America/Cancun
          - Atlantic/Cape_Verde
          - America/Caracas
          - Africa/Casablanca
          - Antarctica/Casey
          - America/Cayenne
          - America/Cayman
          - Indian/Chagos
          - Pacific/Chatham
          - America/Chicago
          - Europe/Chisinau
          - Asia/Chita
          - Indian/Christmas
          - Pacific/Chuuk
          - Indian/Cocos
          - Asia/Colombo
          - Indian/Comoro
          - Africa/Conakry
          - Europe/Copenhagen
          - America/Costa_Rica
          - America/Curacao
          - Africa/Dakar
          - Asia/Damascus
          - America/Danmarkshavn
          - Africa/Dar_es_Salaam
          - Australia/Darwin
          - Antarctica/Davis
          - America/Denver
          - Asia/Dhaka
          - Asia/Dili
          - Africa/Djibouti
          - America/Dominica
          - Africa/Douala
          - Asia/Dubai
          - Europe/Dublin
          - Antarctica/DumontDUrville
          - Asia/Dushanbe
          - Pacific/Easter
          - America/Edmonton
          - Pacific/Efate
          - Africa/El_Aaiun
          - America/El_Salvador
          - Australia/Eucla
          - Pacific/Fakaofo
          - Atlantic/Faroe
          - Pacific/Fiji
          - Africa/Freetown
          - Pacific/Funafuti
          - Africa/Gaborone
          - Pacific/Galapagos
          - Pacific/Gambier
          - Europe/Gibraltar
          - America/Grand_Turk
          - America/Grenada
          - Pacific/Guadalcanal
          - America/Guadeloupe
          - Pacific/Guam
          - America/Guatemala
          - America/Guayaquil
          - Europe/Guernsey
          - America/Guyana
          - America/Halifax
          - Africa/Harare
          - America/Havana
          - Asia/Hebron
          - Europe/Helsinki
          - America/Hermosillo
          - Asia/Ho_Chi_Minh
          - Asia/Hong_Kong
          - Pacific/Honolulu
          - Asia/Hovd
          - Asia/Irkutsk
          - Europe/Isle_of_Man
          - Europe/Istanbul
          - Asia/Jakarta
          - America/Jamaica
          - Asia/Jayapura
          - Europe/Jersey
          - Asia/Jerusalem
          - Africa/Johannesburg
          - Africa/Juba
          - Asia/Kabul
          - Europe/Kaliningrad
          - Asia/Kamchatka
          - Africa/Kampala
          - Pacific/Kanton
          - Asia/Karachi
          - Asia/Kathmandu
          - Indian/Kerguelen
          - Africa/Khartoum
          - Africa/Kigali
          - Africa/Kinshasa
          - Pacific/Kiritimati
          - Asia/Kolkata
          - Pacific/Kosrae
          - America/Kralendijk
          - Asia/Kuala_Lumpur
          - Asia/Kuwait
          - Europe/Kyiv
          - America/La_Paz
          - Africa/Lagos
          - Africa/Libreville
          - America/Lima
          - Europe/Lisbon
          - Europe/Ljubljana
          - Africa/Lome
          - Europe/London
          - Arctic/Longyearbyen
          - Australia/Lord_Howe
          - America/Los_Angeles
          - America/Lower_Princes
          - Africa/Luanda
          - Africa/Lubumbashi
          - Africa/Lusaka
          - Europe/Luxembourg
          - Asia/Macau
          - Europe/Madrid
          - Indian/Mahe
          - Pacific/Majuro
          - Asia/Makassar
          - Africa/Malabo
          - Indian/Maldives
          - Europe/Malta
          - America/Managua
          - America/Manaus
          - Asia/Manila
          - Africa/Maputo
          - Europe/Mariehamn
          - America/Marigot
          - Pacific/Marquesas
          - America/Martinique
          - Africa/Maseru
          - Indian/Mauritius
          - Antarctica/Mawson
          - Indian/Mayotte
          - Africa/Mbabane
          - Antarctica/McMurdo
          - America/Mexico_City
          - Pacific/Midway
          - Europe/Minsk
          - America/Miquelon
          - Africa/Mogadishu
          - Europe/Monaco
          - Africa/Monrovia
          - America/Montevideo
          - America/Montreal
          - America/Montserrat
          - Europe/Moscow
          - Asia/Muscat
          - Africa/Nairobi
          - America/Nassau
          - Pacific/Nauru
          - Africa/Ndjamena
          - America/New_York
          - Africa/Niamey
          - Asia/Nicosia
          - Pacific/Niue
          - Pacific/Norfolk
          - America/Noronha
          - Africa/Nouakchott
          - Pacific/Noumea
          - Asia/Novosibirsk
          - America/Nuuk
          - America/Ojinaga
          - Asia/Omsk
          - Europe/Oslo
          - Africa/Ouagadougou
          - Pacific/Pago_Pago
          - Pacific/Palau
          - Antarctica/Palmer
          - America/Panama
          - America/Paramaribo
          - Europe/Paris
          - Australia/Perth
          - Asia/Phnom_Penh
          - America/Phoenix
          - Pacific/Pitcairn
          - Europe/Podgorica
          - America/Port-au-Prince
          - Pacific/Port_Moresby
          - America/Port_of_Spain
          - Africa/Porto-Novo
          - Europe/Prague
          - America/Puerto_Rico
          - America/Punta_Arenas
          - Asia/Pyongyang
          - Asia/Qatar
          - Asia/Qyzylorda
          - Pacific/Rarotonga
          - America/Regina
          - Indian/Reunion
          - Atlantic/Reykjavik
          - Europe/Riga
          - America/Rio_Branco
          - Asia/Riyadh
          - Europe/Rome
          - Pacific/Saipan
          - Asia/Sakhalin
          - Europe/Samara
          - Europe/San_Marino
          - America/Santiago
          - America/Santo_Domingo
          - America/Sao_Paulo
          - Africa/Sao_Tome
          - Europe/Sarajevo
          - America/Scoresbysund
          - Asia/Seoul
          - Asia/Shanghai
          - Europe/Simferopol
          - Asia/Singapore
          - Europe/Skopje
          - Europe/Sofia
          - Atlantic/South_Georgia
          - America/St_Barthelemy
          - Atlantic/St_Helena
          - America/St_Johns
          - America/St_Kitts
          - America/St_Lucia
          - America/St_Thomas
          - America/St_Vincent
          - Atlantic/Stanley
          - Europe/Stockholm
          - Australia/Sydney
          - Antarctica/Syowa
          - Pacific/Tahiti
          - Asia/Taipei
          - Europe/Tallinn
          - Pacific/Tarawa
          - Asia/Tashkent
          - Asia/Tbilisi
          - America/Tegucigalpa
          - Asia/Tehran
          - Asia/Thimphu
          - America/Thule
          - America/Tijuana
          - Europe/Tirane
          - Asia/Tokyo
          - Pacific/Tongatapu
          - America/Toronto
          - America/Tortola
          - Africa/Tripoli
          - Antarct

# --- truncated at 32 KB (109 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/laurel/refs/heads/main/openapi/laurel-timers-api-openapi.yml