1.  **/schema/schema.sql**: Add `locations` and `session_coaches` table creation SQL statements, and the `ALTER TABLE` statement for the `timetable` table.
2.  **/admin.php**: Modify the session creation/edit form to:
    a.  Use a location selector that populates from a `locations` table lookup. Store `location_id` from the selected location.
    b.  Include an input for `custom_location_label`.
    c.  Include a multi-select dropdown/widget to assign coaches to a session, saving their IDs.
3.  **/coachs-site.php**: Modify session display logic to fetch location details from the `locations` table and display the `custom_location_label`.
4.  **/timetable.php**: Modify session display logic to fetch location details from the `locations` table and display the `custom_location_label`.
5.  **/api/sessions/create.php**: Implement the `validate_session` function.
    a.  Query the `timetable` table for venue conflicts based on `location_id` and `custom_location_label`.
    b.  Query the `session_coaches` table for coach conflicts.
    c.  Call the Google Calendar API to check for personal calendar conflicts. (Requires Google API credentials and integration).
    d.  Use Google Maps API to calculate travel time between sessions. (Requires Google Maps API key).
    e.  Return an array of warnings.
6.  **/api/sessions/update.php**: Implement the `validate_session` function to check for session conflicts before updating.
7.  **/api/locations/create.php**: Create new php file to allow admin/coaches to create new locations that will be stored in the database.
8.  **/api/locations/get.php**: Create new php file to pull location data from database to the client side.
9.  **/admin.php**: Implement a modal dialog to display warnings from the `validate_session` function and provide a "Schedule Anyway" button.
10. **/timetable.php**: Implement "Add to Google Calendar" helper function. Generate a Google Calendar event with the session details and link to `locations.google_place_id` via a Google Maps URL. (Requires Google API integration).
11. **/coachs-site.php**: Implement "Add to Google Calendar" helper function. Generate a Google Calendar event with the session details and link to `locations.google_place_id` via a Google Maps URL. (Requires Google API integration).
12. **/users.php**: Update user profile to include coach email field, used for fetching Google Calendar data.
