> For the complete documentation index, see [llms.txt](https://docs.vomevolunteer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vomevolunteer.com/resources/schedule/reservations/the-reservation-object.md).

# The Reservation object

**Response Object**:

```json
        {
            "id": "3b87b2ee-5063-471d-a70a-051d165ca1d0",
            "shift": {
                "id": "1f7bb9e7-d891-42bc-b2a5-533cc02ad480",
                "created_at": "2021-07-07T15:41:20.968717Z",
                "shift_start_at": "2021-07-14T17:00:00Z",
                "shift_end_at": "2021-07-14T19:00:00Z",
                "spots": 1,
                "shift_title": "Shift Title A",
                "shift_description": null
            },
            "created_at": "2021-07-07T15:41:20.970080Z",
            "status": 6, //Hours logged 
            "arrival_time": "2021-07-14T17:00:00Z",
            "departure_time": "2021-07-14T19:00:00Z",
            "hours_approved_by": {
                "first_name": "Daniella",
                "last_name": "Smith",
                "email": "daniella_smith@domain.com"
            },
            "logged_hours": 2.0,
            "user": {
                "id": "443f05ad-b1be-43bc-a213-3483471bc7fa",
                "first_name": "Lela",
                "last_name": "Craig",
                "email": "Lela_craig@mailinator.com",
                "gender": 1, //Female
                "address": "3949 Decarie Boulevard, Montreal, QC, Canada",
                "phone_number": "929384838",
                "date_of_birth": "1973-03-04",
                "timezone": "America/Toronto",
                "address_coordinates": [
                    "45.5011136",
                    "-73.5793778"
                ]
            },
            "opportunity": {
                "id": "14e21aad-869d-4384-be7b-e12cb8c0dc3d",
                "category": {
                    "id": "9d20cefb-002a-42d9-bce4-9937dd8444b5",
                    "title": "Program ABC",
                    "description": "Description of Program ABC"
                },
                "title": "Transportation",
                "description": "Description of transportation"
            }
        }
```

The response object returns detailed information about a user's reservation. Here's a summary of the key fields:

* **id** (`string`): The unique identifier for the user's reservation to the shift.
* **shift** (`object`): Information about the related shift, including:
  * **id** (`string`): Identifier for the shift.
  * **created\_at** (`string`): The timestamp when the shift was created.
  * **shift\_start\_at**, **shift\_end\_at** (`string`): The start and end times of the shift.
  * **spots** (`integer`): Number of spots associated with the shift.
  * **shift\_title**, **shift\_description** (`string`): Title and description of the shift.
* **created\_at** (`string`): The timestamp when the reservation was created.
* **status** (`integer`): Integer representing the reservation status, where:
  * `0`: Shift request pending
  * `1`: Reserved
  * `2`: Shift request declined
  * `3`: Attendance confirmed
  * `4`: Absent
  * `5`: Checked-in
  * `6`: Hours logged
  * `7`: Hour claim pending
  * `8`: Cancelled
* **logged\_hours** (`array`): The total hours logged for the reservation.
* **hours\_approved\_by** (`array`): Information on the person who approved the hours, including name and email. This is only applicable if the admin checked-out the user from their profile. If the user was logged using the QR code, it would be `null`.&#x20;
  * **first\_name** (`string`): First name of the admin who approved the hours.
  * **last\_name** (`string`): Last name of the admin who approved the hours.
  * **email** (`string`): Email address of the admin who approved the hours.
* **arrival\_time** and **departure\_time** (`string`)**:** These represent the check-in and check-out times, respectively. They are used to calculate the hours logged for the reservation.
* **user** (**User Object**): Details about the user, including:
  * **id**: Unique identifier of the user.
  * **first\_name** (`string`): First name of the user.
  * **last\_name** (`string`): Last name of the user.
  * **email** (`string`): Email address of the user.
  * **gender** (`integer`): Integer indicating gender, where:
    * `0` = Male
    * `1` = Female
    * `2` = Other
    * `3` = Rather not say
  * **address** (`string`): The complete address of the user.
  * **phone\_number** (`string`): Phone number of the user.
  * **date\_of\_birth** (`string`): The date of birth of the user.
  * **timezone** (`string` ): Timezone of the user
  * **address\_coordinates** (`array`): Geographic coordinates of the user if an address was address via Google Maps. If the address was added via the import process, this data would not be available.
* **opportunity** (**Opportunity Object**): Details about the associated opportunity to this shift, including
  * **id** (`string`): Identifier of the opportunity.
  * **title** (`string`): Title of the opportunity.
  * **description** (`string`): Description of the opportunity.
  * **category** (**Category Object**): Details of the related category to this opportunity&#x20;
    * **id** (`string`): Identifier of the category.
    * **title** (`string`): Title of the category.
    * **description** (`string`): Description of the category.
