Timeular · AsyncAPI Specification

EARLY (Timeular) Webhooks

Version v4

Event surface derived from the EARLY (Timeular) public webhook API. Consumers subscribe a publicly reachable HTTPS target URL to a named event via POST /api/v4/webhooks/subscription; EARLY delivers the event payload to that URL over HTTPS POST with a 10 second timeout. A 410 GONE response auto-unsubscribes.

View Spec View on GitHub CompanyTime TrackingProductivityTime ManagementReportingTeam ManagementWebhookSoftware-as-a-ServiceAsyncAPIEventsWebhooks

Channels

timeEntry
subscribe
Time entry lifecycle events delivered to the subscriber target URL.
tracking
subscribe
Live tracking events.
activity
subscribe
Activity lifecycle events.
folder
subscribe
Folder lifecycle events.
timeLeave
subscribe
Leave lifecycle and approval events.

Messages

timeEntryCreated
Time entry created
timeEntryUpdated
Time entry updated
timeEntryDeleted
Time entry deleted
trackingStarted
Tracking started
trackingStopped
Tracking stopped
trackingEdited
Tracking edited
trackingCanceled
Tracking canceled
activityCreated
Activity created
activityUpdated
Activity updated
activityDeleted
Activity deleted
folderCreated
Folder created
folderUpdated
Folder updated
folderDeleted
Folder deleted
timeLeaveCreated
Leave created
timeLeaveUpdated
Leave updated
timeLeaveDeleted
Leave deleted
timeLeaveApproved
Leave approved
timeLeaveDenied
Leave denied

Servers

https
production api.early.app
Webhook subscriptions are managed under https://api.early.app/api/v4/webhooks

AsyncAPI Specification

Raw ↑
# generated: 2026-07-21
# method: derived
# source: https://developers.early.app/ (public Postman collection T1DwdEke, Webhooks folder)
asyncapi: 2.6.0
info:
  title: EARLY (Timeular) Webhooks
  version: v4
  description: >-
    Event surface derived from the EARLY (Timeular) public webhook API. Consumers
    subscribe a publicly reachable HTTPS target URL to a named event via
    POST /api/v4/webhooks/subscription; EARLY delivers the event payload to that
    URL over HTTPS POST with a 10 second timeout. A 410 GONE response auto-unsubscribes.
defaultContentType: application/json
servers:
  production:
    url: api.early.app
    protocol: https
    description: Webhook subscriptions are managed under https://api.early.app/api/v4/webhooks
channels:
  timeEntry:
    description: Time entry lifecycle events delivered to the subscriber target URL.
    subscribe:
      message:
        oneOf:
        - $ref: '#/components/messages/timeEntryCreated'
        - $ref: '#/components/messages/timeEntryUpdated'
        - $ref: '#/components/messages/timeEntryDeleted'
  tracking:
    description: Live tracking events.
    subscribe:
      message:
        oneOf:
        - $ref: '#/components/messages/trackingStarted'
        - $ref: '#/components/messages/trackingStopped'
        - $ref: '#/components/messages/trackingEdited'
        - $ref: '#/components/messages/trackingCanceled'
  activity:
    description: Activity lifecycle events.
    subscribe:
      message:
        oneOf:
        - $ref: '#/components/messages/activityCreated'
        - $ref: '#/components/messages/activityUpdated'
        - $ref: '#/components/messages/activityDeleted'
  folder:
    description: Folder lifecycle events.
    subscribe:
      message:
        oneOf:
        - $ref: '#/components/messages/folderCreated'
        - $ref: '#/components/messages/folderUpdated'
        - $ref: '#/components/messages/folderDeleted'
  timeLeave:
    description: Leave lifecycle and approval events.
    subscribe:
      message:
        oneOf:
        - $ref: '#/components/messages/timeLeaveCreated'
        - $ref: '#/components/messages/timeLeaveUpdated'
        - $ref: '#/components/messages/timeLeaveDeleted'
        - $ref: '#/components/messages/timeLeaveApproved'
        - $ref: '#/components/messages/timeLeaveDenied'
components:
  messages:
    timeEntryCreated: {name: timeEntryCreated, title: Time entry created}
    timeEntryUpdated: {name: timeEntryUpdated, title: Time entry updated}
    timeEntryDeleted: {name: timeEntryDeleted, title: Time entry deleted}
    trackingStarted: {name: trackingStarted, title: Tracking started}
    trackingStopped: {name: trackingStopped, title: Tracking stopped}
    trackingEdited: {name: trackingEdited, title: Tracking edited}
    trackingCanceled: {name: trackingCanceled, title: Tracking canceled}
    activityCreated: {name: activityCreated, title: Activity created}
    activityUpdated: {name: activityUpdated, title: Activity updated}
    activityDeleted: {name: activityDeleted, title: Activity deleted}
    folderCreated: {name: folderCreated, title: Folder created}
    folderUpdated: {name: folderUpdated, title: Folder updated}
    folderDeleted: {name: folderDeleted, title: Folder deleted}
    timeLeaveCreated: {name: timeLeaveCreated, title: Leave created}
    timeLeaveUpdated: {name: timeLeaveUpdated, title: Leave updated}
    timeLeaveDeleted: {name: timeLeaveDeleted, title: Leave deleted}
    timeLeaveApproved: {name: timeLeaveApproved, title: Leave approved}
    timeLeaveDenied: {name: timeLeaveDenied, title: Leave denied}

Work with this as data

Every AsyncAPI spec 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 asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • 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 AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/timeular-early-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?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.