BokaMera.API.Host

<back to all web services

CreateRecurringSchedule

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
POST/schedules/recurringAdd new recurring scheduleAdd new recurring schedule to the company for the currently logged in user, only administrators are allowed to add schedules.
CreateRecurringSchedule Parameters:
NameParameterData TypeRequiredDescription
CompanyIdbodyGuid?NoThe company id, if empty will use the company id for the user you are logged in with.
NamebodystringYesThe schedule name
DescriptionbodystringYesThe schedule description
ActivebodyboolNoIf schedule is active or not
TimeIntervalbodyintYesTime interval for available times. Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM
EnableBookingUntilClosingTimebodyboolYesAllow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).
ValidFrombodyDateTimeYesThe timestamp to which the schedule is valid from
ValidTobodyDateTimeYesThe timestamp to which the schedule is valid to
StartTimebodyTimeSpanYesThe time for the schedule opening hours (starttime)
EndTimebodyTimeSpanYesThe time for the schedule opening hours (endtime)
NumberOfScheduleDaysbodyintYesThe number of days the schedule is valid from todays date
DaysOfWeekbodyint[]YesIf recurring, an array indicating which days of the week the schedule recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs
ScheduleDatesbodyList<AddRecurringScheduleDate>YesIf not recuring, an array indicating which dates that are open for the schedule.
ExceptionsbodyList<ScheduleException>YesSchedule exceptions. For example closed on lunch time between 12AM and 1PM. These times will be removed from the recurring schedule.
ResourcesbodyList<AddScheduleResource>YesIf the schedule is only connected to some resources, add them here. If empty, it will be used by all resources.
ServicesbodyList<AddScheduleService>YesSet what services the schedule should be connected to.
AddRecurringScheduleDate Parameters:
NameParameterData TypeRequiredDescription
DateformDateTimeYesThe date for the schedule opening (only date part is used here
StartTimeformTimeSpanYesThe time for the schedule opening hours (starttime)
EndTimeformTimeSpanYesThe time for the schedule opening hours (endtime)
ScheduleException Parameters:
NameParameterData TypeRequiredDescription
StartTimeformTimeSpanNo
EndTimeformTimeSpanNo
AddScheduleResource Parameters:
NameParameterData TypeRequiredDescription
IdformintYesThe resource id
AddScheduleService Parameters:
NameParameterData TypeRequiredDescription
IdformintYesThe service id
RecurringScheduleQueryResponse Parameters:
NameParameterData TypeRequiredDescription
IdformintNoThe schedule id
NameformstringYesName of the schedule
DescriptionformstringYesDescription of the schedule
ActiveformboolNoIf the schedule is active or not
TimeIntervalformintYesTime interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10AM 09:15AM-10:15AM, 09:30AM-10:30AM , ..... 04:45PM-05:45, 05:00PM-06:00PM
ValidFromformDateTimeYesThe timestamp to which the schedule is valid from
ValidToformDateTimeYesThe timestamp to which the schedule is valid to
StartTimeformTimeSpanYesThe time for the schedule opening hours (starttime)
EndTimeformTimeSpanYesThe time for the schedule opening hours (endtime)
NumberOfScheduleDaysformintYesThe number of days the schedule is valid from todays date
IsResourceSpecificformbool?YesIf the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this.
UpdatedDateformDateTimeYesThe timestamp when the schedule was updated
CreatedDateformDateTimeYesThe timestamp when the schedule was created
EnableBookingUntilClosingTimeformboolYesAllow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).
DaysOfWeekformList<DayOfWeekDto>YesIf recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs
ResourcesformList<ScheduleResources>YesThe resources that is connected to the schedule
ServicesformList<ScheduleServices>YesThe services that is connected to the schedule
ExceptionsformList<RecurringScheduleExceptionResponse>YesThe exceptions that is added to the schedule
ScheduleDatesformList<RecurringScheduleDateResponse>YesSchedule dates, used when the schedule is not a rolling schedule using days of week
ResponseStatusformResponseStatusYes
DayOfWeekDto Parameters:
NameParameterData TypeRequiredDescription
DayOfWeekIdformintNo
DotNetDayOfWeekIdformintNo
DayOfWeekformstringYes
ScheduleResources Parameters:
NameParameterData TypeRequiredDescription
IdformintNo
NameformstringYesName of the resource
ImageUrlformUriYesThe image url of the resource
ScheduleServices Parameters:
NameParameterData TypeRequiredDescription
IdformintNo
NameformstringYesName of the service
ImageUrlformUriYesThe image url of the service
RecurringScheduleExceptionResponse Parameters:
NameParameterData TypeRequiredDescription
StartTimeformTimeSpanNoStart time of the schedule exception.
EndTimeformTimeSpanNoEnd time of the schedule exception.
RecurringScheduleDateResponse Parameters:
NameParameterData TypeRequiredDescription
IdformintNo
DateformDateTimeNo
StartTimeformTimeSpanNo
EndTimeformTimeSpanNo
ResponseStatusformResponseStatusYes

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /schedules/recurring HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	Name: String,
	Description: String,
	Active: False,
	TimeInterval: 0,
	EnableBookingUntilClosingTime: False,
	StartTime: PT0S,
	EndTime: PT0S,
	NumberOfScheduleDays: 0,
	DaysOfWeek: 
	[
		0
	],
	ScheduleDates: 
	[
		{
			StartTime: PT0S,
			EndTime: PT0S
		}
	],
	Exceptions: 
	[
		{
			StartTime: PT0S,
			EndTime: PT0S
		}
	],
	Resources: 
	[
		{
			Id: 0
		}
	],
	Services: 
	[
		{
			Id: 0
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	Name: String,
	Description: String,
	Active: False,
	TimeInterval: 0,
	StartTime: PT0S,
	EndTime: PT0S,
	NumberOfScheduleDays: 0,
	IsResourceSpecific: False,
	EnableBookingUntilClosingTime: False,
	DaysOfWeek: 
	[
		{
			DayOfWeekId: 0,
			DotNetDayOfWeekId: 0,
			DayOfWeek: String
		}
	],
	Resources: 
	[
		{
			Id: 0,
			Name: String
		}
	],
	Services: 
	[
		{
			Id: 0,
			Name: String
		}
	],
	Exceptions: 
	[
		{
			StartTime: PT0S,
			EndTime: PT0S
		}
	],
	ScheduleDates: 
	[
		{
			Id: 0,
			StartTime: PT0S,
			EndTime: PT0S,
			ResponseStatus: 
			{
				ErrorCode: String,
				Message: String,
				StackTrace: String,
				Errors: 
				[
					{
						ErrorCode: String,
						FieldName: String,
						Message: String,
						Meta: 
						{
							String: String
						}
					}
				],
				Meta: 
				{
					String: String
				}
			}
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}