> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hookpulse.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Single Schedule Details

> Retrieve detailed information about a specific schedule by its UUID, including driver configuration, status, execution history, timezone conversions, and associated rules

Retrieve detailed information about a specific schedule by its UUID. This endpoint returns comprehensive schedule information including driver configuration, status, execution history, timezone conversions, and associated rules.

## Base URL

All API requests should be made to:

```
https://api.hookpulse.io
```

## Example request

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.hookpulse.io/v1/api/get_single_schedule_details/" \
    -H "x-hookpulse-api-key: {{x-hookpulse-api-key}}" \
    -H "x-brand-uuid: {{x-brand-uuid}}" \
    -H "Content-Type: application/json" \
    -d '{
      "schedule_uuid": "{{schedule_uuid}}"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.hookpulse.io/v1/api/get_single_schedule_details/', {
    method: 'POST',
    headers: {
      'x-hookpulse-api-key': '{{x-hookpulse-api-key}}',
      'x-brand-uuid': '{{x-brand-uuid}}',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      schedule_uuid: '{{schedule_uuid}}'
    })
  });

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  url = 'https://api.hookpulse.io/v1/api/get_single_schedule_details/'
  headers = {
      'x-hookpulse-api-key': '{{x-hookpulse-api-key}}',
      'x-brand-uuid': '{{x-brand-uuid}}',
      'Content-Type': 'application/json'
  }
  payload = {
      'schedule_uuid': '{{schedule_uuid}}'
  }

  response = requests.post(url, headers=headers, json=payload)
  print(response.json())
  ```

  ```ruby Ruby theme={null}
  require 'net/http'
  require 'json'
  require 'uri'

  uri = URI('https://api.hookpulse.io/v1/api/get_single_schedule_details/')
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  request = Net::HTTP::Post.new(uri)
  request['x-hookpulse-api-key'] = '{{x-hookpulse-api-key}}'
  request['x-brand-uuid'] = '{{x-brand-uuid}}'
  request['Content-Type'] = 'application/json'
  request.body = {
    schedule_uuid: '{{schedule_uuid}}'
  }.to_json

  response = http.request(request)
  puts JSON.parse(response.body)
  ```

  ```php PHP theme={null}
  <?php

  $url = "https://api.hookpulse.io/v1/api/get_single_schedule_details/";
  $data = [
      'schedule_uuid' => '{{schedule_uuid}}'
  ];

  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
  curl_setopt($ch, CURLOPT_HTTPHEADER, [
      'x-hookpulse-api-key: {{x-hookpulse-api-key}}',
      'x-brand-uuid: {{x-brand-uuid}}',
      'Content-Type: application/json'
  ]);

  $response = curl_exec($ch);
  curl_close($ch);

  echo $response;
  ?>
  ```
</RequestExample>

## Request body

| Field           | Type   | Required | Description                                  |
| --------------- | ------ | -------- | -------------------------------------------- |
| `schedule_uuid` | string | Yes      | UUID of the schedule to retrieve details for |

## Example response

<ResponseExample>
  ```json theme={null}
  {
    "data": {
      "driver": {
        "type": "interval",
        "interval_value": 10,
        "interval_period": "second",
        "cron_expression": null,
        "cron_timezone": null,
        "clocked_run_at": null,
        "clocked_timezone": null,
        "solar_event": null,
        "solar_lat": null,
        "solar_long": null,
        "is_one_off": false,
        "solar_offset": null
      },
      "status": "paused",
      "type": "webhook",
      "last_run_at": "{{last_run_at}}",
      "next_run_at": null,
      "locale_timezone_converted_details": {
        "preferred_timezone": "Asia/Kolkata",
        "time_left_to_trigger": null,
        "last_run_at_by_preferred_timezone": "{{last_run_at_by_preferred_timezone}}",
        "next_run_at_by_preferred_timezone": null
      },
      "schedule_uuid": "{{schedule_uuid}}",
      "schedule_applied_model_uuid": "{{schedule_applied_model_uuid}}",
      "target_name": "test webhook 33",
      "target_description": "webhook description 4",
      "total_triggered": 146,
      "rules": []
    },
    "success": true
  }
  ```
</ResponseExample>

## Response fields

### Data object

| Field                               | Type           | Description                                                                         |
| ----------------------------------- | -------------- | ----------------------------------------------------------------------------------- |
| `driver`                            | object         | Driver configuration details (see Driver Object below)                              |
| `status`                            | string         | Current status: `"active"`, `"inactive"`, `"paused"`, `"completed"`, or `"expired"` |
| `type`                              | string         | Type of schedule target: `"webhook"` or `"workflow"`                                |
| `last_run_at`                       | string \| null | ISO 8601 timestamp of the last execution (UTC)                                      |
| `next_run_at`                       | string \| null | ISO 8601 timestamp of the next scheduled execution (UTC)                            |
| `locale_timezone_converted_details` | object         | Timezone-converted details for the preferred timezone                               |
| `schedule_uuid`                     | string         | Unique identifier for the schedule                                                  |
| `schedule_applied_model_uuid`       | string         | UUID of the webhook or workflow template being scheduled                            |
| `target_name`                       | string         | Name of the webhook or workflow template                                            |
| `target_description`                | string         | Description of the webhook or workflow template                                     |
| `total_triggered`                   | integer        | Total number of times the schedule has been triggered                               |
| `rules`                             | array          | Array of rules associated with this schedule (see Rules Array below)                |

### Driver Object

The driver object contains configuration specific to the schedule type. Only relevant fields are populated based on the driver type.

| Field              | Type            | Description                                                                  |
| ------------------ | --------------- | ---------------------------------------------------------------------------- |
| `type`             | string          | Driver type: `"interval"`, `"cron"`, `"clocked"`, `"solar"`, or `"debounce"` |
| `interval_value`   | integer \| null | Number of time units between executions (for interval schedules)             |
| `interval_period`  | string \| null  | Unit of time: `"second"`, `"minute"`, or `"hour"` (for interval schedules)   |
| `cron_expression`  | string \| null  | Cron expression (for cron schedules)                                         |
| `cron_timezone`    | string \| null  | IANA timezone identifier (for cron schedules)                                |
| `clocked_run_at`   | string \| null  | ISO 8601 datetime for execution (for clocked schedules)                      |
| `clocked_timezone` | string \| null  | IANA timezone identifier (for clocked schedules)                             |
| `solar_event`      | string \| null  | Solar event type (for solar schedules)                                       |
| `solar_lat`        | string \| null  | Latitude in decimal degrees (for solar schedules)                            |
| `solar_long`       | string \| null  | Longitude in decimal degrees (for solar schedules)                           |
| `is_one_off`       | boolean         | Whether this is a one-time task                                              |
| `solar_offset`     | integer \| null | Offset in seconds (for solar schedules)                                      |

### Locale Timezone Converted Details

| Field                               | Type           | Description                                                           |
| ----------------------------------- | -------------- | --------------------------------------------------------------------- |
| `preferred_timezone`                | string         | IANA timezone identifier used for conversion                          |
| `time_left_to_trigger`              | string \| null | Human-readable time until next execution (e.g., "2 hours 30 minutes") |
| `last_run_at_by_preferred_timezone` | string \| null | Last run time converted to preferred timezone (ISO 8601 with offset)  |
| `next_run_at_by_preferred_timezone` | string \| null | Next run time converted to preferred timezone (ISO 8601 with offset)  |

### Rules Array

Array of rule objects associated with the schedule. Each rule object contains fields based on its rule type:

* **Time Window Rules**: `rule_type`, `start_time`, `end_time`, `timezone`
* **Calendar Window Rules**: `rule_type`, `allow_days`, `allow_months`
* **Solar Window Rules**: `rule_type`, `solar_start_event`, `solar_end_event`, `solar_lat`, `solar_long`
* **Exclusion Rules**: `rule_type`, `exclusion_dates`
* **Termination Rules**: `rule_type`, `max_run_to_terminate_after`, `expire_at`

### Root fields

| Field     | Type    | Description                             |
| --------- | ------- | --------------------------------------- |
| `success` | boolean | Indicates if the request was successful |
| `data`    | object  | Schedule details object                 |

## Driver Type Examples

### Interval Schedule

```json theme={null}
{
  "type": "interval",
  "interval_value": 10,
  "interval_period": "second",
  "cron_expression": null,
  "cron_timezone": null,
  "clocked_run_at": null,
  "clocked_timezone": null,
  "solar_event": null,
  "solar_lat": null,
  "solar_long": null,
  "is_one_off": false,
  "solar_offset": null
}
```

### Cron Schedule

```json theme={null}
{
  "type": "cron",
  "interval_value": null,
  "interval_period": null,
  "cron_expression": "0 0 * * *",
  "cron_timezone": "Asia/Kolkata",
  "clocked_run_at": null,
  "clocked_timezone": null,
  "solar_event": null,
  "solar_lat": null,
  "solar_long": null,
  "is_one_off": false,
  "solar_offset": null
}
```

### Clocked Schedule

```json theme={null}
{
  "type": "clocked",
  "interval_value": null,
  "interval_period": null,
  "cron_expression": null,
  "cron_timezone": null,
  "clocked_run_at": "2024-12-25T00:00:00Z",
  "clocked_timezone": "UTC",
  "solar_event": null,
  "solar_lat": null,
  "solar_long": null,
  "is_one_off": true,
  "solar_offset": null
}
```

### Solar Schedule

```json theme={null}
{
  "type": "solar",
  "interval_value": null,
  "interval_period": null,
  "cron_expression": null,
  "cron_timezone": null,
  "clocked_run_at": null,
  "clocked_timezone": null,
  "solar_event": "sunrise",
  "solar_lat": "40.7128",
  "solar_long": "-74.0060",
  "is_one_off": false,
  "solar_offset": 0
}
```

## Status Values

| Status        | Description                                                         |
| ------------- | ------------------------------------------------------------------- |
| `"active"`    | Schedule is running and executing according to its configuration    |
| `"inactive"`  | Schedule is disabled and will not execute                           |
| `"paused"`    | Schedule is temporarily paused                                      |
| `"completed"` | Schedule has completed (typically for one-off tasks)                |
| `"expired"`   | Schedule has expired (termination rule met or past expiration date) |

## Use Cases

* **Schedule Inspection**: View complete configuration of a schedule
* **Debugging**: Check why a schedule is paused or not executing
* **Monitoring**: Track execution history and next run times
* **Audit**: Review schedule configuration and associated rules
* **Timezone Verification**: Verify timezone conversions for preferred timezone

## Related Documentation

* [Scheduling Overview](/docs/api-reference/scheduling/overview) - Learn about scheduling types and features
* [Get Active Schedules (Paginated)](/docs/api-reference/scheduling/get-schedules-paginated) - List all schedules with filters
* [Add Schedule Rule](/docs/api-reference/scheduling/add-schedule-rule) - Add rules to schedules


## OpenAPI

````yaml POST /v1/api/get_single_schedule_details/
openapi: 3.0.3
info:
  title: Hookpulse API
  description: >-
    Complete API documentation for Hookpulse. Build powerful integrations with
    our RESTful API.
  version: 1.0.0
  contact:
    name: Hookpulse Support
    email: care@hookpulse.io
    url: https://hookpulse.io
servers:
  - url: https://api.hookpulse.io
    description: Production server
security:
  - apiKeyAuth: []
    brandUuidAuth: []
paths:
  /v1/api/get_single_schedule_details/:
    post:
      description: >-
        Retrieve detailed information about a specific schedule by its UUID,
        including driver configuration, status, execution history, timezone
        conversions, and associated rules
      requestBody:
        description: Schedule UUID
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetSingleScheduleDetailsRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSingleScheduleDetailsResponse'
        '400':
          description: Bad request or schedule not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    GetSingleScheduleDetailsRequest:
      required:
        - schedule_uuid
      type: object
      properties:
        schedule_uuid:
          type: string
          description: UUID of the schedule to retrieve details for
    GetSingleScheduleDetailsResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ScheduleDetails'
        success:
          type: boolean
          description: Indicates if the request was successful
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: integer
          format: int32
        message:
          type: string
    ScheduleDetails:
      type: object
      properties:
        driver:
          $ref: '#/components/schemas/ScheduleDriver'
        status:
          type: string
          enum:
            - active
            - inactive
            - paused
            - completed
            - expired
          description: Current status of the schedule
        type:
          type: string
          enum:
            - webhook
            - workflow
          description: Type of schedule target
        last_run_at:
          type: string
          format: date-time
          nullable: true
          description: ISO 8601 timestamp of the last execution (UTC)
        next_run_at:
          type: string
          format: date-time
          nullable: true
          description: ISO 8601 timestamp of the next scheduled execution (UTC)
        locale_timezone_converted_details:
          $ref: '#/components/schemas/LocaleTimezoneConvertedDetails'
        schedule_uuid:
          type: string
          description: Unique identifier for the schedule
        schedule_applied_model_uuid:
          type: string
          description: UUID of the webhook or workflow template being scheduled
        target_name:
          type: string
          description: Name of the webhook or workflow template
        target_description:
          type: string
          description: Description of the webhook or workflow template
        total_triggered:
          type: integer
          description: Total number of times the schedule has been triggered
        rules:
          type: array
          items:
            type: object
            description: Rule object (structure varies by rule type)
          description: Array of rules associated with this schedule
    ScheduleDriver:
      type: object
      properties:
        type:
          type: string
          enum:
            - interval
            - cron
            - clocked
            - solar
            - debounce
          description: Driver type
        interval_value:
          type: integer
          nullable: true
          description: Number of time units between executions (for interval schedules)
        interval_period:
          type: string
          enum:
            - second
            - minute
            - hour
          nullable: true
          description: Unit of time for interval schedules
        cron_expression:
          type: string
          nullable: true
          description: Cron expression (for cron schedules)
        cron_timezone:
          type: string
          nullable: true
          description: IANA timezone identifier (for cron schedules)
        clocked_run_at:
          type: string
          format: date-time
          nullable: true
          description: ISO 8601 datetime for execution (for clocked schedules)
        clocked_timezone:
          type: string
          nullable: true
          description: IANA timezone identifier (for clocked schedules)
        solar_event:
          type: string
          enum:
            - sunrise
            - sunset
            - civil_dawn
            - civil_dusk
            - nautical_dawn
            - nautical_dusk
            - astronomical_dawn
            - astronomical_dusk
          nullable: true
          description: Solar event type (for solar schedules)
        solar_lat:
          type: string
          nullable: true
          description: Latitude in decimal degrees (for solar schedules)
        solar_long:
          type: string
          nullable: true
          description: Longitude in decimal degrees (for solar schedules)
        is_one_off:
          type: boolean
          description: Whether this is a one-time task
        solar_offset:
          type: integer
          nullable: true
          description: Offset in seconds (for solar schedules)
    LocaleTimezoneConvertedDetails:
      type: object
      properties:
        preferred_timezone:
          type: string
          description: IANA timezone identifier used for conversion
        time_left_to_trigger:
          type: string
          nullable: true
          description: Human-readable time until next execution
        last_run_at_by_preferred_timezone:
          type: string
          nullable: true
          description: Last run time converted to preferred timezone (ISO 8601 with offset)
        next_run_at_by_preferred_timezone:
          type: string
          nullable: true
          description: Next run time converted to preferred timezone (ISO 8601 with offset)
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-hookpulse-api-key
      description: >-
        API key for authentication. Get this from your dashboard by selecting a
        brand and going to API Keys section.
    brandUuidAuth:
      type: apiKey
      in: header
      name: x-brand-uuid
      description: >-
        Brand UUID for authentication. Get this from your dashboard after adding
        a brand - it will be displayed in the UI.

````