--- title: "system.user.addSchedule" description: "Adds a schedule." --- # system.user.addSchedule > Adds a schedule. This function is used in **Python Scripting**. ## Description ## Client Permission Restrictions [Permission Type](ignition-modules\vision\vision-project-properties\vision-project-properties.md#vision-permissions-properties): User Management Client access to this scripting function is blocked to users that do not meet the role/zone requirements for the above permission type. This function is unaffected when run in the Gateway scope. ## Syntax `system.user.addSchedule(schedule)` ### Parameters Type | Parameter | Description ------- | ------- | ------ ScheduleModel| `schedule` | The schedule to add. Can be a [BasicScheduleModel](https://sdk.inductiveautomation.com/javadoc/ignition83/latest/com/inductiveautomation/ignition/common/user/schedule/BasicScheduleModel.html) or [CompositeScheduleModel](https://sdk.inductiveautomation.com/javadoc/ignition83/latest/com/inductiveautomation/ignition/common/user/schedule/CompositeScheduleModel.html) object (or any other class that extends [AbstractScheduleModel](https://sdk.inductiveautomation.com/javadoc/ignition83/latest/com/inductiveautomation/ignition/common/user/schedule/AbstractScheduleModel.html)). ### Returns **UIResponse** - A [UIResponse](https://sdk.inductiveautomation.com/javadoc/ignition83/latest/com/inductiveautomation/ignition/common/messages/UIResponse.html) object with lists of warnings, errors, and info about the success or failure of the add. The contents of the lists are accessible from the getter methods. * `getWarns()` - Returns a list of warning messages that were encountered during the add. * `getErrors()` - Returns a list of error messages that were encountered during the add. * `getInfos()` - Returns a list of "info" messages that were encountered during the add. These messages represent normal logging events that occurred during the add, and can be useful when trying to visualize the events that lead up to a failure. ### Scope Gateway, Vision Client, Perspective Session ## Code Examples ```python title="Example #1" # This example tries to add the schedule NewSchedule based on an existing schedule MySchedule, and prints the results of the action. # This function prints the response received. def printResponse(responseList): if len(responseList) > 0: for response in responseList: print "", response else: print " None" # The main function. mySchedule = system.user.getSchedule("Always") if mySchedule != None and mySchedule.getType() == "basic schedule": mySchedule.setObserveHolidays(False) mySchedule.setName("NewSchedule") response = system.user.addSchedule(mySchedule) warnings = response.getWarns() print "Warnings are:" printResponse(warnings) errors = response.getErrors() print "Errors are:" printResponse(errors) infos = response.getInfos() print "Infos are:" printResponse(infos) """The example above outputs the following: Warnings are: None Errors are: None Infos are: New schedule "NewSchedule" added. """ ```