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.
"use strict";
export class DayOfWeekDto {
    /** @param {{DayOfWeekId?:number,DotNetDayOfWeekId?:number,DayOfWeek?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    DayOfWeekId;
    /** @type {number} */
    DotNetDayOfWeekId;
    /** @type {string} */
    DayOfWeek;
}
export class ScheduleResources {
    /** @param {{Id?:number,Name?:string,ImageUrl?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /**
     * @type {string}
     * @description Name of the resource */
    Name;
    /**
     * @type {string}
     * @description The image url of the resource */
    ImageUrl;
}
export class ScheduleServices {
    /** @param {{Id?:number,Name?:string,ImageUrl?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /**
     * @type {string}
     * @description Name of the service */
    Name;
    /**
     * @type {string}
     * @description The image url of the service */
    ImageUrl;
}
export class RecurringScheduleExceptionResponse {
    /** @param {{StartTime?:string,EndTime?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description Start time of the schedule exception. */
    StartTime;
    /**
     * @type {string}
     * @description End time of the schedule exception. */
    EndTime;
}
export class RecurringScheduleDateResponse {
    /** @param {{Id?:number,Date?:string,StartTime?:string,EndTime?:string,ResponseStatus?:ResponseStatus}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    Id;
    /** @type {string} */
    Date;
    /** @type {string} */
    StartTime;
    /** @type {string} */
    EndTime;
    /** @type {ResponseStatus} */
    ResponseStatus;
}
export class RecurringScheduleQueryResponse {
    /** @param {{Id?:number,Name?:string,Description?:string,Active?:boolean,TimeInterval?:number,ValidFrom?:string,ValidTo?:string,StartTime?:string,EndTime?:string,NumberOfScheduleDays?:number,IsResourceSpecific?:boolean,UpdatedDate?:string,CreatedDate?:string,EnableBookingUntilClosingTime?:boolean,DaysOfWeek?:DayOfWeekDto[],Resources?:ScheduleResources[],Services?:ScheduleServices[],Exceptions?:RecurringScheduleExceptionResponse[],ScheduleDates?:RecurringScheduleDateResponse[],ResponseStatus?:ResponseStatus}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {number}
     * @description The schedule id */
    Id;
    /**
     * @type {string}
     * @description Name of the schedule */
    Name;
    /**
     * @type {string}
     * @description Description of the schedule */
    Description;
    /**
     * @type {boolean}
     * @description If the schedule is active or not */
    Active;
    /**
     * @type {number}
     * @description Time 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 */
    TimeInterval;
    /**
     * @type {string}
     * @description The timestamp to which the schedule is valid from */
    ValidFrom;
    /**
     * @type {string}
     * @description The timestamp to which the schedule is valid to */
    ValidTo;
    /**
     * @type {string}
     * @description The time for the schedule opening hours (starttime) */
    StartTime;
    /**
     * @type {string}
     * @description The time for the schedule opening hours (endtime) */
    EndTime;
    /**
     * @type {number}
     * @description The number of days the schedule is valid from todays date */
    NumberOfScheduleDays;
    /**
     * @type {boolean}
     * @description If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this. */
    IsResourceSpecific;
    /**
     * @type {string}
     * @description The timestamp when the schedule was updated */
    UpdatedDate;
    /**
     * @type {string}
     * @description The timestamp when the schedule was created */
    CreatedDate;
    /**
     * @type {boolean}
     * @description Allow 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). */
    EnableBookingUntilClosingTime;
    /**
     * @type {DayOfWeekDto[]}
     * @description If 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 */
    DaysOfWeek;
    /**
     * @type {ScheduleResources[]}
     * @description The resources that is connected to the schedule */
    Resources;
    /**
     * @type {ScheduleServices[]}
     * @description The services that is connected to the schedule */
    Services;
    /**
     * @type {RecurringScheduleExceptionResponse[]}
     * @description The exceptions that is added to the schedule */
    Exceptions;
    /**
     * @type {RecurringScheduleDateResponse[]}
     * @description Schedule dates, used when the schedule is not a rolling schedule using days of week */
    ScheduleDates;
    /** @type {ResponseStatus} */
    ResponseStatus;
}
export class AddRecurringScheduleDate {
    /** @param {{Date?:string,StartTime?:string,EndTime?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The date for the schedule opening (only date part is used here */
    Date;
    /**
     * @type {string}
     * @description The time for the schedule opening hours (starttime) */
    StartTime;
    /**
     * @type {string}
     * @description The time for the schedule opening hours (endtime) */
    EndTime;
}
export class ScheduleException {
    /** @param {{StartTime?:string,EndTime?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    StartTime;
    /** @type {string} */
    EndTime;
}
export class AddScheduleResource {
    /** @param {{Id?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {number}
     * @description The resource id */
    Id;
}
export class AddScheduleService {
    /** @param {{Id?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {number}
     * @description The service id */
    Id;
}
export class CreateRecurringSchedule {
    /** @param {{CompanyId?:string,Name?:string,Description?:string,Active?:boolean,TimeInterval?:number,EnableBookingUntilClosingTime?:boolean,ValidFrom?:string,ValidTo?:string,StartTime?:string,EndTime?:string,NumberOfScheduleDays?:number,DaysOfWeek?:number[],ScheduleDates?:AddRecurringScheduleDate[],Exceptions?:ScheduleException[],Resources?:AddScheduleResource[],Services?:AddScheduleService[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?string}
     * @description The company id, if empty will use the company id for the user you are logged in with. */
    CompanyId;
    /**
     * @type {string}
     * @description The schedule name */
    Name;
    /**
     * @type {string}
     * @description The schedule description */
    Description;
    /**
     * @type {boolean}
     * @description If schedule is active or not */
    Active;
    /**
     * @type {number}
     * @description Time 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 */
    TimeInterval;
    /**
     * @type {boolean}
     * @description Allow 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). */
    EnableBookingUntilClosingTime;
    /**
     * @type {string}
     * @description The timestamp to which the schedule is valid from */
    ValidFrom;
    /**
     * @type {string}
     * @description The timestamp to which the schedule is valid to */
    ValidTo;
    /**
     * @type {string}
     * @description The time for the schedule opening hours (starttime) */
    StartTime;
    /**
     * @type {string}
     * @description The time for the schedule opening hours (endtime) */
    EndTime;
    /**
     * @type {number}
     * @description The number of days the schedule is valid from todays date */
    NumberOfScheduleDays;
    /**
     * @type {number[]}
     * @description If 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 */
    DaysOfWeek;
    /**
     * @type {AddRecurringScheduleDate[]}
     * @description If not recuring, an array indicating which dates that are open for the schedule. */
    ScheduleDates;
    /**
     * @type {ScheduleException[]}
     * @description Schedule exceptions. For example closed on lunch time between 12AM and 1PM. These times will be removed from the recurring schedule. */
    Exceptions;
    /**
     * @type {AddScheduleResource[]}
     * @description If the schedule is only connected to some resources, add them here. If empty, it will be used by all resources. */
    Resources;
    /**
     * @type {AddScheduleService[]}
     * @description Set what services the schedule should be connected to. */
    Services;
}

JavaScript CreateRecurringSchedule DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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: api.bokamera.se 
Accept: application/json
Content-Type: application/json
Content-Length: length

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

{"Id":0,"Name":"String","Description":"String","Active":false,"TimeInterval":0,"StartTime":"00:00:00","EndTime":"00:00:00","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":"00:00:00","EndTime":"00:00:00"}],"ScheduleDates":[{"Id":0,"StartTime":"00:00:00","EndTime":"00:00:00","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"}}}