Scheduling & calendar sync API

Bring powerful scheduling functionality and extraordinary flexibility to your app with the Cogsworth API

Manage staff
locations, resources
& staff

Create and manage staff and bookable users all around the world with changing working hours and calendar availabilities. Prevent overbookings or double bookings.

Two Way Calendar Syncs for Gmail, Outlook and Apple

Allow your users to sync their own calendars. Prevent double bookings and write bookings directly into their external calendars.

Create your own workflows & leverage pre-built logic

Recurring appointments
Team Bookings
Approvals
Buffers

Give your users an interface or build your own

Customize the Cogsworth booking page or build your own website or app booking experience with the Cogsworth API.

#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
Required: email,name
name:            string
                          The staff name. This will be rendered in the public booking page and notifications.example: John Doe
email:             string
                           The staff email.example: john@email.com
isAdmin:       boolean
                           Whether the staff member is a business administrator.
workingHours:
{                        The working hours for this resource. Availablity is calculated using this value.
                          Required: friday,monday,saturday,sunday,thursday,tuesday,wednesday
                          monday:    {
                                                    Required: enabled
                                                    enabled: boolean
                                                    hours: { }
                                                    breaks: []
                                                    }
                          tuesday:    { }
                          wednesday:    { }
                          thursday:    { }
                          friday:   { }
                          saturday:  { }
                          sunday:   { }
                          }

phoneMobile:            string
The staff phone number. This will be used to send SMS notifications.

pictureId:             string
The staff picture id. Used to attach a picture to a staff.
}
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
data: [
                          {
                          An object containing the available timeslots for the requested resource and time period.
                          time:             string (datetime)
                                                   The timeslot.

                          staffs:   [
                          The number of slots available for this timeslot for each staff member.
                              {
                                                            id:                              string
                                                           availableSlots:    integer
                                }
                              ]
                        }
                     ]
meta:
                              {
                              count:    integer
                              }
}
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
Required: customer,date,duration,serviceId,staffId
date:             string (datetime)
                        The appointment date.example: 2020-10-20T00:00:00.000Z

serviceId:   string
The appointment's service id.

staffId:         string
The appointment's primary staff id.

customer: {
                         The appointment's customer data. Provide either an ID or data for a new customer.
                                                id: string
                                                name:   string
                                                email: string
                                                phoneMobile: string
                        }
duration:              integer
                                   The appointment duration. Must be a valid duration existing in the appointment's service.
                                   example: 30

answers: [
The answers given by the customer when booking the appointment.
                         {
                         id: string
                         question: string
                         answer: string
                          }
                         ]

clientTimezone: string
                                         The appointment customer's timezone. See                                                                                                         https://gist.github.com/diogocapela/12c6617fc87607d11fd62d2a4f42b02a for a list of                                                       possible timezones.
}
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
POST
/businesses/{id}/iCloudCalendarConnections

Usage and SDK Samples
curl -X POST -H "Authorization: [[apiKey]]" "https://api.cogsworth.com/v1/businesses/{id}/iCloudCalendarConnections"

id            string
body            {
                        
user:             string
                                                
The iCloud userexample: user@icloud.com
                        
password: string
                                                
The iCloud app-specific password. See https://support.apple.com/en-us/HT204397}
Webhooks
Custom
Fields
Activity
Log