> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-agent-native-development.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Scheduler Message

> Scheduler Message — CometChat documentation.

The `SchedulerMessage` class is used to create an interactive scheduler message that can be sent via CometChat. It extends the Interactive Interactive Messages class from CometChat.

### Properties

| Name | Type | Description |
| - | - | - |
| receiverUid | String | The ID of the receiver |
| receiverType | String | The type of the receiver |
| title | String | The title of the scheduler message |
| scheduleElement | ButtonElement | The schedule button of the meet message. |
| goalCompletionText | String | The text visible after completion of goal |
| interactions | Interactions | Gives the list of elements you have interacted with |
| allowSenderInteraction | bool | Allows the sender interaction. default is false |
| avatarUrl | String | url to set avatar visible in scheduler bubble |
| timezoneCode | String | the message sender's timezone code according to which availability is set |
| bufferTime | Int | The time added between events |
| duration | Int | The time for the event slots |
| availability | \[String: \[TimeRange}] | The date time range for availability in different days |
| dateRangeStart | Int | Date from which event can be scheduled |
| dateRangeEnd | Int | Date upto which event can be scheduled |
| icsFileUrl | String | url to access ics file which can tell the schedule of message sender |

### Class Usage

How to create an instance of the `SchedulerMessage` class:

```php theme={null}
let schedulerMessage = SchedulerMessage()
schedulerMessage.duration = 60
schedulerMessage.title = "Meet Dr. Jackob"
schedulerMessage.bufferTime = 15
schedulerMessage.avatarURL = "https:__encrypted-tbn0.gstatic.com_images?q=tbn:ANd9GcRdRz0HEBl1wvncmX6rU8wFrRDxt2cvn2Dq9w&usqp=CAU"
schedulerMessage.goalCompletionText = "Meeting Scheduled Successfully!!"
schedulerMessage.timezoneCode = TimeZone.current.identifier
schedulerMessage.dateRangeStart = Int(Date().timeIntervalSince1970)
schedulerMessage.dateRangeEnd = Int(Date().addingTimeInterval(30 * 24 * 60 * 60).timeIntervalSince1970)
schedulerMessage.receiverUid = "cometchat-uid-1"
schedulerMessage.receiverType = .user
schedulerMessage.availability = [
    "monday": [TimeRange(startTime: "0000", endTime: "1359")],
    "tuesday": [TimeRange(startTime: "0000", endTime: "1559")],
    "wednesday ": [TimeRange(startTime: "0000", endTime: "0659")],
    "thuesday": [TimeRange(startTime: "0000", endTime: "0959")],
    "friday": [TimeRange(startTime: "0000", endTime: "1059")],
]

let clickAction = APIAction()
let scheduleElement = ButtonElement(elementType: .button, elementID: "21", clickAction: clickAction, buttonText: "Submit")
schedulerMessage.scheduleElement = scheduleElement
return schedulerMessage
```

### Send Scheduler Message

```php theme={null}
CometChatUIKit.sendSchedulerMessage(schedulerMessage: schedulerMessage) { schedulerMessage in
    print("schedulerMessage sent success")
} onError: { error in
    print("schedulerMessage sent failed with error: \\(error?.description)")
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.