Just wanted to get a little clarity on some questions I had:
RE: POST /v1/bookings
If I’m understanding correctly, this allows me to programmatically (by API) put time on someone’s (an account’s) calendar, right? (It’ll create both a booking and event?) I.E., I can use this API as a proxy to otherwise booking on the YCBM UI. If this understanding is wrong, could you help me understand what it actually does… also, you can ignore the rest of my questions
Is it safe to assume that YCBM will put events on all remote calendars as well?
If so, what happens if there’s a conflict? Will it merge (kind of like how Outlook will overlap them) for all remote calendars? Or will the API reject the request?
Any support / any way to get an .ics file?
RE: Calendars
Does YCBM have its own Calendar(s) per Account? Or does it only interface with Remote Account(s) and their Calendars(s)?
RE: GET /v1/{accountId}/bookings or GET /v1/bookings
Will either of these APIs return the bookings on remotely connected calendars? E.g., My outlook and google calendar is linked with my YCBM account… if I add an event on my outlook calendar, will it reflect over this API? Or is that the Events resource?
What’s the difference between an Event and a Booking? Booking is just the response whereas Event is the actual event?
Yes any booking you create will create an event on the connected calendar.
Each booking will only go onto 1 remote account.
If there is a conflict the POST will return an error.
We do not have an .ics endpoint any longer, it was deprecated.
RE: Calendars
We do not have internal calendars. All events will be on the Google or Microsoft calendar integrated and connected to the booking page.
RE: GET /v1/{accountId}/bookings or GET /v1/bookings
This endpoint will only GET the bookings that we create, it won’t pull in other events on the connected calendar. There is not a way to query the calendar to pull in events any longer this was deprecated as well.
The difference between an Event (a different calendar item) and a booking is that we are controlling and editing the booking items.
So as an example you can post an Event to your calendar for a Custom Availability event that is marked as free through the API, then the booking could be created in that time period if there is free time.
This endpoint will only GET the bookings that we create, it won’t pull in other events on the connected calendar. There is not a way to query the calendar to pull in events any longer this was deprecated as well.
Ah, I noticed under the APIs for the Events resource that there’s no way to “List Events” for a remote account&calendar (only to retrieve one by ID) - is this what you were referencing when you mentioned the deprecation?
If there’s no way to do this, do you happen to know what you other YCBM API clients are doing when Creating a Booking/Event? I would think that they would like to guard-against/minimize submitting a booking request that would get rejected if it result in a conflict. Or are they mostly using the booking form UI?
RE:
So as an example you can post an Event to your calendar for a Custom Availability event that is marked as free through the API, then the booking could be created in that time period if there is free time.
Sorry, I’m afraid I don’t follow. What’s the difference between Creating a Booking (that would ultimately end up creating an event on the connected calendar) and Creating an Event?
If it’s not too much trouble could you possibly use an example?
Yes, this is it exactly. We limited the scope of the API to not allow the system to retrieve all of the event details from the calendar.
Some will use Google Free/Busy and others will have a system to retry for an alternate time. Others will embed the booking grid into their applications. In the future we will have an additional availability endpoint that you can use to get time that a booking page is free.
Sorry for the confusion. You can use the Events endpoint to add calendar events to the connected calendar. These are different than bookings. The bookings will have YCBM meta data we use to review and send out notifications. If you add just any Event it will not work within our notifications system because it was not created through a Booking.
I mention Custom Availability because this is a way to create placeholder events on a calendar to pin point start times and adjust availability day to day on the calendar itself, not through our UI. You could in theory add these Custom Availability events through the API to essentially add availability to the booking page.