---
title: "Update a scheduled notification"
method: PUT
path: "/notifications/scheduled/{id}"
tags: ["scheduled-notifications"]
---

# Update a scheduled notification

`PUT /notifications/scheduled/{id}`

Update a scheduled notification. Only notifications with 'pending_approval' or 'rejected' status can be updated.
    After update, notification will require admin approval again.
    You can modify the title, body, scheduled time, target configuration, and other properties.

## Path parameters

- `id` number, required

## Request body

- UpdateScheduledNotificationDto
  - `title` string — Notification title
  - `body` string — Notification body
  - `scheduledTime` string — Updated scheduled time (ISO 8601 format)
  - `targetType` 'user' | 'users' | 'all_users' | 'tokens' | 'topic' | 'condition' — Updated target type
  - `targetValue` object — Updated target value
  - `data` object — Updated custom data
  - `imageUrl` string — Updated image URL
  - `clickAction` string — Updated click action
  - `timezone` string — Updated timezone

## Response `200`

Notification updated successfully

- ScheduledNotificationResponseDto
  - `notification_id` number, required — Notification ID
  - `title` string, required — Notification title
  - `body` string, required — Notification body
  - `scheduled_time` string, date-time, required — Scheduled time
  - `timezone` string, required — Timezone
  - `target_type` 'user' | 'users' | 'all_users' | 'tokens' | 'topic' | 'condition', required — Target type
  - `target_value` object — Target value
  - `status` 'pending_approval' | 'pending' | 'processing' | 'sent' | 'failed' | 'cancelled' | 'expired' | 'rejected', required — Current status
  - `sent_at` string, date-time — Sent timestamp
  - `success_count` number, required — Number of successful sends
  - `failure_count` number, required — Number of failed sends
  - `error_message` string — Error message if failed
  - `created_at` string, date-time, required — Created timestamp
  - `updated_at` string, date-time, required — Updated timestamp

## Other responses

- `400` — Bad request - Cannot update notification (e.g., not in pending status, invalid data)
- `401` — Unauthorized - Invalid or missing JWT token
- `404` — Notification not found

---

[API](https://skmtc.dev/tonewow/apis/tonewow-database-api.md) · [All operations](https://skmtc.dev/tonewow/apis/tonewow-database-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tonewow/tonewow-database-api/revisions/f36472974ad4/schema)
