offerings

Update an offering. Set active: false to pause booking; it stays in your dashboard. Setting waitlist_enabled false takes everyone waiting for its times off the waitlist and emails each of them that it closed.

patch/offerings/{id}

Request

  • Base URL: https://daybag.io/api/v1
  • URL: https://daybag.io/api/v1/offerings/{id}
  • Auth: HTTP bearer

Path parameters

idstring uuid required

Request body

namestring
descriptionstring
locationstring

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

duration_minutesinteger

Length of a class session or appointment, or of one rental period (1440 = a day)

capacityinteger

class: seats per session · appointment: parallel bookings per slot · rental: items in stock

max_per_bookinginteger

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

price_centsinteger

class: per seat · appointment: per appointment, for its first person (see guest_price_cents) · rental: per item per period

guest_price_centsinteger nullable

appointment: what each additional guest in a party adds; null (the default) charges each the full price, 0 makes them free

deposit_centsinteger nullable

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

deposit_percentinteger nullable

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

slot_interval_minutesinteger nullable

Minutes between start times; null means back to back

buffer_minutesinteger

Gap between bookings: minutes kept free before and after each one, for rentals and appointments on weekly hours (a calendar's times keep none)

min_notice_minutesinteger

When booking closes: how many minutes before a time starts (0: open until it starts)

max_advance_daysinteger
max_periodsinteger

Rentals: the most periods one booking can span

activeboolean

false pauses booking: guests and agents can't book it, and it stays in your dashboard

metadataobject

Free-form JSON for your own integrations

latnumber nullable

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

lonnumber nullable

The meeting point's longitude

place_idstring nullable

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

gauge_sitestring nullable

A USGS river gauge's site number (e.g. 13022500), for the river's flow

schedule'hours' | 'calendar'

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

waiver_requiredboolean

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)

waitlist_enabledboolean

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)

courseboolean

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)

Response

Success

idstring required
org_idstring required
kind'class' | 'appointment' | 'rental' required

class: sessions with seats, from its calendar · appointment: times from its calendar or weekly hours · rental: inventory over periods

namestring required
descriptionstring required
locationstring required

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

duration_minutesinteger required

Length of a class session or appointment, or of one rental period (1440 = a day)

capacityinteger required

class: seats per session · appointment: parallel bookings per slot · rental: items in stock

max_per_bookinginteger required

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

price_centsinteger required

class: per seat · appointment: per appointment, for its first person (see guest_price_cents) · rental: per item per period

guest_price_centsinteger nullable

appointment: what each additional guest in a party adds; null (the default) charges each the full price, 0 makes them free

deposit_centsinteger nullable

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

deposit_percentinteger nullable

A deposit as a percent of the total, 1 to 99, paid at booking where guests pay online; null: the whole total

slot_interval_minutesinteger nullable required

Minutes between start times; null means back to back

buffer_minutesinteger required
min_notice_minutesinteger required
max_advance_daysinteger required
max_periodsinteger required

Rentals: the most periods one booking can span

activeboolean required

false pauses booking: guests and agents can't book it, and it stays in your dashboard

metadataunknown required
latnumber nullable

The meeting point's latitude, for its map link and the weather call

lonnumber nullable
place_idstring nullable

Google Maps' place ID for the location, which the guest's map link opens

gauge_sitestring nullable

A USGS river gauge's site number

schedule'hours' | 'calendar' nullable

An appointment's: weekly hours or calendar entries; null for other kinds

waiver_requiredboolean

Each person booked signs your waiver (waiver.get) on their phone before they come

waitlist_enabledboolean

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

courseboolean

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

photo_urlstring nullable

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)

created_atstring required

ISO 8601 timestamp (UTC)

Changes

No recorded changes to this operation across all 1 revision of this API.