Documentation

Reservation

{
  'accessory_users'?: [ {
    'checked_in': <bool>,
    'display_name': <str>,
    'email': <str>,
    'status': <str>,
    'user_id': <str>,
  } ],
  'accessory_users_external'?: [ {
    'name': <str>,
    'email': <str>,
    'status': <str>,
  } ],

  'accessory_users_need_rsvp': <bool>,
  'account_number': <str>,
  'account_number_description': <str>,
  'admin_note': <str>,
  'anyapprovers': <bool>,

  'approvals': [ {
    'approval_id': <str>,
    'approver'?: {
      'email': <str>,
      'display_name': <str>,
      'user_id': <str>,
    },
    'changed': <datetime>,
    'status': <str>,
  } ],

  'autocancelled': <bool>,
  'blocks': [ <str> ],
  'buffer_before': <dec>,
  'cancelled': <bool>,
  'cancelled_date'?: <datetime>, # Only if cancelled
  'cancelled_reason'?: <str>, # Only if cancelled
  'cancelled_by'?: {
      'email': <str>,
      'display_name': <str>,
      'user_id': <str>,
    }, # Only if cancelled
  'checked_in'?: <bool>,
  'checked_in_at'?: <datetime>,
  'checked_out_at'?: <datetime>,
  'checkin_at'?: <datetime>,
  'checkin_before_minutes'?: <dec>,
  'checkout_after_minutes'?: <dec>,
  'created': <datetime>,
  'created_by': {
    'email': <str>,
    'display_name': <str>,
    'user_id': <str>,
  },
  'current': <bool>,
  'denied_by_admin_reason?': <str>,
  'duration': <dec>, # seconds
  'end': <datetime>,
  
  'expires_at_if_unpaid?': <datetime>,
  
  'external_email?': <str>,  # Email captured by a web integration request.
  
  # Form responses are not found on parent reservations,
  # but are rather only found in single resource or child
  # reservations.
  'form_responses'?: [ {
    'form': {
    	'admins_can_skip'?: <bool>,
      'form_id': <str>,
      'name': <str>,
      'portal_id'?: <str>,
      
      # Current schema for form, which may be different
      # from the schema at the time of the form response.
      'schema': [ {
        'adminOnly'?: <bool>,
        'customId'?: <str, none>,
        'fileUploadOptions'?: {
          'extensions'?: [ <str, none> ],
          'maxBytes'?: <int, none>,
          'minBytes'?: <int, none>,
        },
        'hint'?: <str>,
        'inputType': <str>,
        'label'?: <str>,
        'max'?: <dec>,
        'min'?: <dec>,
      	'model': <str>,
        'publicToUsers'?: <bool>,
        'readonly': <bool>,
        'required': <bool>,
        'requiredValues'?: [ <str> ] <none>,
        'selectOptions'? {
          'hideNoneSelectedText'?: <bool>,
          'noneSelectedText'?: <str>,
        },
        'shortName'?: <str, none>,
        'showIfScript'?: <str, none>,
        'showOnCalendar'?: <bool>,
        'showOnCalendarSyncTitle'?: <bool>,        
        'showOnReservationView'?: <bool>,
        'showOnEmails'?: <bool>,
        'showOnEmailSubject'?: <bool>,        
        'step'?: <dec>,
        'type': <str>,
        'values'?: [ <str> ],
      } ],
      'site_id'?: <str>,
      'values': [ {
      } ],
    },
  	'form_response_id': <str>,
    
    # Schema at the time of the form response.
    'schema': [ {
      'adminOnly'?: <bool>,
      'customId'?: <str, none>,
      'fileUploadOptions'?: {
        'extensions'?: [ <str, none> ],
        'maxBytes'?: <int, none>,
        'minBytes'?: <int, none>,
      },
      'hint'?: <st
      'inputType': <str>,
      'label'?: <str>,
      'max'?: <dec>,
      'min'?: <dec>,
      'model': <str>,
      'publicToUsers'?: <bool>,
      'readonly': <bool>,
      'required': <bool>,
      'requiredValues'?: <[<str>], none>,
      'selectOptions'? {
        'hideNoneSelectedText'?: <bool>,
        'noneSelectedText'?: <str>,
      },
      'shortName'?: <str, none>,
      'showIfScript'?: <str, none>,
      'showOnCalendar'?: <bool>,
      'showOnCalendarSyncTitle'?: <bool>,        
      'showOnReservationView'?: <bool>,
      'showOnEmails'?: <bool>,
      'showOnEmailSubject'?: <bool>,    
      'step'?: <dec>,
      'type': <str>,
      'values'?: [ <str> ],
    } ],
    'values': {
      <str>: <str, dec, [dec], [str], none>,
    },
  } ],

	'invoiced_automatically': <bool>, 
  
  'is_loan': <bool>,
  'maintenance': <bool>,
  'maintenance_nonblocking'?: <bool>,  # Only present if maintenance is True
  
  'named_unit'?: {
  	'named_unit_id': <str>,
    'name': <str>,
    'properties': { <str>: <str>, ... }
  },
  
  'note': <str>,
  
  # Not populated for ical entries.
  'original_reservation_created'?: <datetime>,
  
  'overdue'?: <bool>,
  'price'?: <dec>
  'price_int'?: <int>,

  'projects'?: [ {
    'active': <bool>,
    'created': <datetime>,
    'hidden_note': <str>,
    'last_modified': <datetime>,
    'name': <str>,
    'project_id': <str>,
    'status': <str>,
    'status_details': <str>,
  } ],

  'prorate_half_interval_multiplier'?: <dec>,
  'purpose': <str>,
  'rate_description': <str>,
  'rate_basis': <str>,
  'rate_id'?: <dec>,
  'rate_quote_requested': <bool>,
  'rate_meta_data': <dict>,
  'rate_script'?: <str>,
  'rate_site_reservation_script_id'?: <str>,
  'rate_unit': <str>,

  'recurring_reservation'?: {
    'description': <str>,
    'end': <datetime>,
    'first_reservation_id': <str>,
    'maintenance': <bool>,
    'maintenance_nonblocking': <bool>,
    'original_recurring_reservation_id'?: <str>,
    'recipe': {
    	'cancellations': [ <datetime> ],
      'every': <num>,
      'on': [ <bool> ], # which week days to recur on
      'unit': <str>,
      'until': <datetime>,
    },
    'recurring_reservation_id': <str>,
    'replaced_recurring_reservation_id'?: <str>,
    'start': <datetime>,
  },

	'reminder_seconds': <dec>,
  'replaced_form_response_id'?: <str>,
  'replaced_reservation_id'?: <str>,
  
  # For multi-resource reservations, this field will not exist
  # and the resources will all be in 'reservation_children'.
  # Additional reservable properties such as tags and custom properties
  # are available through API functions.
  'reservable'?: {
    'active': <bool>,
    'anyapprovers': <bool>,
    'barcode': <str>,
    'bgcolor': <str>,
    'buffer_before': <dec>,
    'can_return': <bool>,
    'category': <str>,
    'class'?: <str>,
    'currency'?: <str>,
    'enable_end_early': <bool>,
    'future_loans': <bool>,
    'is_addon': <bool>,
    'loanable': <bool>,
    'name': <str>,
    'qreserve_id': <str>,
    'rate_name_only': <bool>,
    'rate_quotes': <bool>,
    'reservable_id': <str>,
    'reservable_type': <str>,
    'reservation_max_duration'?: <dec>, # seconds
    'reservation_minimum'?: <dec>, # seconds
    'reservation_unit_limit'?: <dec>,
    'returnable': <bool>,
    'show_account_number_on_reservations': <bool>,
    'show_note_on_reservations': <bool>,
    'show_purpose_on_reservations': <bool>,
    'units': <dec>,
    'units_a_f_t_id'?: <str>,
    'units_name': <str>,
  },
  
  # If this was a support request for another resource it is included here.
  'support_for_reservable'?: {
    'active': <bool>,
    'anyapprovers': <bool>,
    'bgcolor': <str>,
    'buffer_before': <dec>,
    'can_return': <bool>,
    'category': <str>,
    'class'?: <str>,
    'currency'?: <str>,
    'enable_end_early': <bool>,
    'future_loans': <bool>,
    'is_addon': <bool>,
    'loanable': <bool>,
    'name': <str>,
    'qreserve_id': <str>,
    'rate_name_only': <bool>,
    'rate_quotes': <bool>,
    'reservable_id': <str>,
    'reservable_type': <str>,
    'reservation_max_duration'?: <dec>, # seconds
    'reservation_minimum'?: <dec>, # seconds
    'reservation_unit_limit'?: <dec>,
    'returnable': <bool>,
    'show_account_number_on_reservations': <bool>,
    'show_note_on_reservations': <bool>,
    'show_purpose_on_reservations': <bool>,
    'units': <dec>,
    'units_a_f_t_id'?: <str>,
    'units_name': <str>,
  },
  
  'reservation_children': [ <self> ],
  'reservation_id': <str>,
  
  # Parent reservation ID (for children)
  'reservation_parent'?: <str>,

  'reservation_type': <str>,
  
  'reservation_url': <str>,
  
  # May be missing on ICS reservations.
  'reserved_for'?: {
    'email': <str>,
  	'display_name': <str>,
    'user_id': <str>,
  },
  
  'reserved_for_supervisor'?: {
    'email': <str>,
  	'display_name': <str>,
    'user_id': <str>,
  },
  
  'reserved_for_text'?: <str>,
  'returned'?: <datetime>,
  'site_id': <str>,
  'site_name': <str>,
  'sku'?: <str>,
  'soft': <bool>,
  'start': <datetime>,
  'status': <str>,
  'summary': <str>,
  'tax_code'?: <str>,
  'tax_note'?: <str>,
  'tax_rate'?: <dec>,
  'total_units'?: <dec>,
  'units'?: <dec>,
}