Create an offering. Only kind and name are required; everything else has defaults per kind. Appointments and rentals open daily 9:00–17:00 (org time) until you set hours; classes need sessions.
Request
- Base URL: https://daybag.io/api/v1
- URL: https://daybag.io/api/v1/offerings
- Auth: HTTP bearer
Request body
Where it meets, as guests read it, with a Google Maps link: an address, a place with its town, or GPS coordinates ("45.6770, -111.0429"). Or an https meeting link (Zoom, Meet, Teams) for an offering online: guests get Join instead of a map, and its times on their own clock
Length of a class session or appointment, or of one rental period (1440 = a day)
class: seats per session · appointment: parallel bookings per slot · rental: items in stock
Most seats, people or items in one booking. An appointment is one-on-one at 1 (its default); more lets a guest book for a party
class: per seat · appointment: per appointment, for its first person (see guest_price_cents) · rental: per item per period
appointment: what each additional guest in a party adds; null (the default) charges each the full price, 0 makes them free
A deposit to hold a place, in the currency's minor units: where guests pay online at booking, they pay this much (at most the total) and the rest at the start. Null (the default) takes the whole total. One or the other with deposit_percent: setting one clears the other, both at once is 400 deposit_conflict
A deposit as a percent of the total, 1 to 99, rounded half up to a whole minor unit (after any promo code). Null (the default) takes the whole total
Minutes between start times; null means back to back
Gap between bookings: minutes kept free before and after each one, for rentals and appointments on weekly hours (a calendar's times keep none)
When booking closes: how many minutes before a time starts (0: open until it starts)
Rentals: the most periods one booking can span
false pauses booking: guests and agents can't book it, and it stays in your dashboard
Free-form JSON for your own integrations
The meeting point's latitude, for its map link and the weather call. A new location without lat and lon sets them from coordinates typed in it, or clears them
The meeting point's longitude
Google Maps' place ID for the location, which the guest's map link opens; the dashboard's Location search sets it, and a new location without it clears it
A USGS river gauge's site number (e.g. 13022500), for the river's flow
Appointments only: open on weekly hours (offerings.set_hours) or on calendar entries (series.create), one or the other; new ones use the calendar, and it moves to hours only once its calendar has no times to come
Each person booked signs your waiver on their phone before they come: one per seat or guest, one per rental booking. Needs your waiver's text first (waiver.update; 409 waiver_missing)
A full time keeps a waitlist: guests whose party doesn't fit join it from the booking page, and when a place opens everyone whose party fits is emailed at once (waitlist_list). Times on a calendar only: a class's, or an appointment's on its calendar (400 waitlist_not_supported)
Classes only (409 not_a_class): sell it as a course. One booking (bookings.create's series_id) takes a seat in every time of a calendar entry from its first to come, at price_cents per seat for the whole course; a repeating entry needs ends_on. No waitlist (409 waitlist_conflict)
class: sessions with seats, from its calendar · appointment: times from its calendar or weekly hours · rental: inventory over periods
Response
Success
class: sessions with seats, from its calendar · appointment: times from its calendar or weekly hours · rental: inventory over periods
Where it meets, as guests read it: an address, a place or GPS coordinates. Or an https meeting link for an offering online, which guests join
Length of a class session or appointment, or of one rental period (1440 = a day)
class: seats per session · appointment: parallel bookings per slot · rental: items in stock
Most seats, people or items in one booking. An appointment is one-on-one at 1 (its default); more lets a guest book for a party
class: per seat · appointment: per appointment, for its first person (see guest_price_cents) · rental: per item per period
appointment: what each additional guest in a party adds; null (the default) charges each the full price, 0 makes them free
A deposit guests pay at booking where they pay online, in the currency's minor units (at most the total); the rest is due at the start. Null: the whole total
A deposit as a percent of the total, 1 to 99, paid at booking where guests pay online; null: the whole total
Minutes between start times; null means back to back
Rentals: the most periods one booking can span
false pauses booking: guests and agents can't book it, and it stays in your dashboard
The meeting point's latitude, for its map link and the weather call
Google Maps' place ID for the location, which the guest's map link opens
A USGS river gauge's site number
An appointment's: weekly hours or calendar entries; null for other kinds
Each person booked signs your waiver (waiver.get) on their phone before they come
A full time keeps a waitlist that guests join, emailed when a place opens (waitlist_list). Switched off, everyone waiting comes off and is emailed
A class sold as a course: availability.get lists each calendar entry that ends as one slot, and bookings.create takes its series_id to book every time of it
Its photo, at the top of its card on the booking page: a JPEG's absolute URL, or null without one. Read-only: photos are uploaded in the dashboard (the offering's Photo)
ISO 8601 timestamp (UTC)
Changes
No recorded changes to this operation across all 1 revision of this API.