---
title: Schedule APIs
slug: legacy-docs/schedule-apis
docTags: 
createdAt: 2025-03-11T07:03:32.130Z
---

## ScheduledPresentation Entity-Relation

The ScheduledPresentation entity-relation represents the relationship between a Presentation and Group instance in terms of its schedule. This entity-relation has the following properties.

- `Id` int:(read only) The identifier and primary key of the Presentation instance.
- `PresentationId` int: The identifier of the Presentation instance that is scheduled for the associated Group instance. Since a single Presentation instance can be scheduled for a Group instance multiple times, this identifier allows you to distinguish among unique schedule instances.
- `PresentationName` string: The name of the Presentation instance that is scheduled for the associated Group instance.
- `IsRecurrent` bool: A flag specifying whether the related presentation is played periodically at specified times and days of the week.
- `EventDate` Nullable: A DateTime value specifying the date when a non-recurrent presentation should begin playing. A Null value can be set for recurrent presentations that do not have a defined start date.
- `StartTime` TimeSpan: A TimeSpan value specifying the time when a presentation should begin playing.
- `Duration` TimeSpan: A TimeSpan value specifying how long a presentation should play.
- `RecurrenceStartDate` Nullable: A DateTime value indicating the date when a recurrently scheduled presentation should begin playing. A Null value can be set for recurrent presentations that do not have a defined start date.
- `RecurrenceEndDate` Nullable: A DateTime value indicating the date when a recurrently scheduled presentation should terminate. A Null value can be set for recurrent presentations that do not have a defined end date.
- `DaysOfWeek` DayOfWeek: A value indicating the days of the week during which a recurrently scheduled presentation should play. A presentation scheduled for “all day, every day” can be created with the following property settings: StartTime as “00:00:00”, EndTime as “1.00:00:00” (or “24:00:00”), and DaysofWeek as “EveryDay”; EventDate, RecurrenceStartDate, and RecurrenceEndDate are set to Null.
- `CreationDate` DateTime:(read only) A UTC timestamp indicating when the related Presentation instance was scheduled for the associated Group instance.
- `LastModifiedDate` DateTime:(read only) A UTC timestamp indicating when the current schedule was last updated.
- `ExpirationDate` DateTime:(read only) A UTC timestamp indicating when the current schedule will expire.

## Schedule Management Web Methods

### PagedList\<ScheduledPresentation> GetGroupSchedule(int groupId, string marker, int pageSize)

Retrieves the next page of the ScheduledPresentation list associated with a specified Group instance (or ScheduledBrightWallPresnetation list associated with a specified BrightWallGroup instance). The list is sorted by the `[DateTime] ExpirationDate` of the ScheduledPresentation entity-relations. The returned list will contain no more items than the defined page size.

**Required** **Permissions**

Schedule: View Schedule

**Parameters**

- `groupID` int: The identifier of the Group instance that is associated with the schedule. If a Group instance with the specified identifier does not exist, the method will immediately return Null without an error.
- `marker` string: The `ExpirationDate` string of the last ScheduledPresentation instance on the previous page. If the value is Null, then the method will retrieve the first page.
- `pageSize` int: The maximum number of objects returned by the method. If the list of objects that match the search criteria exceeds the `pageSize` int limit, the returned list will indicate that it is truncated. If the integer is not positive, then the method will return the maximum allowed number of objects. Attempting to request more objects than is allowed will lead to the same result, but without an error.

### ScheduledPresentation AddScheduledPresentation(int groupId, ScheduledPresentation entity)

Schedules a Presentation instance for a specified Group instance (or a BrightWallPresentation instance for a specified BrightWallGroup instance) and updates related service files in the storage. If successful, this method will return a newly created ScheduledPresentation or ScheduledBrightWallPresentation entity-relation. This method will return Null if an error occurs.

**Required** **Parameters**

Group: Update Schedule – Presentation: Assign Presentation (BrightWall Presentation: Assign BrightWall Presentation)\*

\**This permission is only required when scheduling a BrightWallPresentation instance.*

**Parameters**

- `groupId` int: The identifier of the Group/BrightWallGroup instance for which the Presentation/BrightWallPresentation instance should be scheduled.
- `entity` ScheduledPresentation: A ScheduledPresentation or ScheduledBrightWallPresentation object instance with an `Id` int and/or `Name` string specifying the Presentation/BrightWallPresentation instance. An `Id` int and/or `Name` string is also required for the Group/BrightWallGroup. If this parameter is set to Null, then this method will immediately return Null without an error. A descriptive error will be returned if any of the following conditions occur:
  - The specified Presentation/BrightWallPresentation `Id` int or `Name` string does not correspond to an existing instance.
  - The specified Group/BrightWallGroup `Id` int or `Name` string does not correspond to an existing instance.
  - A Presentation instance is scheduled for a BrightWallGroup instance.
  - A BrightWallPresentation instance is scheduled for a BrightWallGroup instance.
  - The `StartTime` TimeSpan value of the ScheduledPresentation/ScheduledBrightWallPresentation entity-relation is less than “00:00:00” or greater than “24:00:00”.
  - The `Duration` TimeSpan value of the ScheduledPresentation/ScheduledBrightWallPresentation entity-relation is less than “00:00:00” or greater than “24:00:00” minus the `StartTime` TimeSpan.
  - A recurrent schedule does not have Start Time, Duration, or Days of Week values.
  - A recurrent schedule contains a Recurrence Start Date value but not a Recurrence End Date value, or vice-versa.
  - A specified Recurrence Start Date value is greater than the Recurrence End Date value.
  - A non-recurrent schedule does not have Event Date, Start Time, or Duration values.
  - The specified ScheduledPresentation/ScheduledBrightWallPresentation instance conflicts with another Presentation/BrightWallPresentation instance already scheduled for the group.

### bool UpdateScheduledPresentation(ScheduledPresentation entity)

Updates the settings of the specified ScheduledPresentation or ScheduledBrightWallPresentation instance and related service files in storage.

**Required** **Permissions**

Group: Update Schedule – Presentation: Assign Presentation, Unassign Presentation \[BrightWall Presentation: Assign BrightWall Presentation, Unassign BrightWall Presentation]\*

\**This permission is only required when updating a ScheduledBrightWallPresentation instance.*

**Parameters**

- `entity` ScheduledPresentation: A ScheduledPresentation/ScheduledBrightWallPresentation object instance with an initialized instance `Id` int and an updated Presentation/BrightWallPresentation `Id` int and/or `Name` string. The instance must also contain StartTime, Duration, IsRecurrent, EventDate, RecurrenceStartDate, RecurrenceEndDate, and DaysOfWeek properties. All other properties will be ignored. If this parameter is set to Null, then the method will immediately return Null without an Error. A descriptive error will be returned if any of the following conditions occur:
  - The specified ScheduledPresentation/ScheduledBrightWallPresentation `Id` int does not correspond to an existing instance.
  - The specified Presentation/BrightWallPresentation `Id` int or `Name` string does not correspond to an existing instance.
  - The `StartTime` TimeSpan value of the ScheduledPresentation/ScheduledBrightWallPresentation entity-relation is less than “00:00:00” or greater than “24:00:00”.
  - The `Duration` TimeSpan value of the ScheduledPresentation/ScheduledBrightWallPresentation entity-relation is less than “00:00:00” or greater than “24:00:00” minus the `StartTime` TimeSpan.
  - A recurrent schedule does not have Start Time, Duration, or Days of Week values.
  - A recurrent schedule contains a Recurrence Start Date value but not a Recurrence End Date value, or vice-versa.
  - A specified Recurrence Start Date value is greater than the Recurrence End Date value.
  - A non-recurrent schedule does not have Event Date, Start Time, or Duration values.
  - The specified ScheduledPresentation/ScheduledBrightWallPresentation instance conflicts with another Presentation/BrightWallPresentation instance already scheduled for the group.

### bool OverwriteSchedule(int groupId, ScheduledPresentation\[] entities)

Completely overwrites one or more schedules associated with the specified Group or BrightWallGroup instance and updates related service files in the storage. This method returns `True` only if it is completely successful. Otherwise, it will return `False`.

**Required** **Permissions**

Group: Update Schedule – Presentation: Assign Presentation, Unassign Presentation \[BrightWall Presentation: Assign BrightWall Presentation, Unassign BrightWall Presentation]\*

\**This permission is only required when overwriting schedule(s) associated with a BrightWallGroup instance.*

**Parameters**

- `groupId` int: The identifier of the Group/BrightWallGroup instance to modify. If the `Id` int does not correspond to an existing Group/BrightWallGroup instance, the method will immediately return False without an error.
- `entities` ScheduledPresentation\[]: A list of ScheduledPresentation instances or ScheduledBrightWallPresentation instances, each containing an initialized \[int] Id and/or \[string] Name. Each instance should also contain the following properties: StartTime, Duration, IsRecurrent, EventDate, RecurrenceStartDate, RecurrenceEndDate, and DaysofWeek. All other properties will be ignored. If this parameter is set to Null or is passed an empty list, the method will delete all existing presentation entities associated with the specified Group/BrightWallGroup instance. A descriptive error will be returned if any of the following conditions occur:
  - The specified `Id` int or `Name` string does not correspond to an existing Presentation or BrightWallPresentation instance.
  - The ScheduledPresentation instance(s) are specified for a BrightWallGroup instance.
  - The ScheduledBrightWallPresentation instance(s) are scheduled for a BrightWallGroup instance.
  - The `StartTime` TimeSpan value of the ScheduledPresentation or ScheduledBrightWallPresentation entity-relation is less than “00:00:00” or greater than “24:00:00”.
  - The `Duration` TimeSpan value of the ScheduledPresentation or ScheduledBrightWallPresentation entity-relation is less than “00:00:00” or greater than “24:00:00” minus the `StartTime` TimeSpan.
  - A recurrent schedule does not have Start Time, Duration, or Days of Week values.
  - A recurrent schedule contains a Recurrence Start Date value but not a Recurrence End Date value, or vice-versa.
  - A specified Recurrence Start Date value is greater than the Recurrence End Date value.
  - A non-recurrent schedule does not have Event Date, Start Time, or Duration values.
  - The specified ScheduledPresentation/ScheduledBrightWallPresentation instances conflict with each other.

### bool RemoveScheduledPresentation(int scheduledPresentationId)

Deletes the specified ScheduledPresentation or ScheduledBrightWallPresentation instance and updates related service files in the storage. This method returns True only if completely successful. Otherwise, it will return False.

**Required** **Permissions**

Group: Update Schedule – Presentation: Unassign Presentation \[BrightWall Presentation: Unassign BrightWall Presentation]\*

\**This permission is only required when removing a schedule associated with a BrightWallGroup instance.*

**Parameters**

- `ScheduledPresentationId` int: An identifier indicating the ScheduledPresentation instance that should be deleted.

