code: def reserve_time_slot(self, calendar_event, participant_id=None, **kwargs):
          
          from canvasapi.calendar_event import CalendarEvent
  
          calendar_event_id = obj_or_id(calendar_event, "calendar_event", (CalendarEvent,))
  
          if participant_id:
              uri = 'calendar_events/{}/reservations/{}'.format(
                  calendar_event_id, participant_id
              )
          else:
              uri = 'calendar_events/{}/reservations'.format(calendar_event_id)
  
          response = self.__requester.request(
              'POST',
              uri,
              _kwargs=combine_kwargs(**kwargs)
          )
          return CalendarEvent(self.__requester, response.json())
docs: Return single Calendar Event by id
  
          :calls: `POST /api/v1/calendar_events/:id/reservations \
          <https://canvas.instructure.com/doc/api/calendar_events.html#method.calendar_events_api.reserve>`_
  
          :param calendar_event: The object or ID of the calendar event.
          :type calendar_event: :class:`canvasapi.calendar_event.CalendarEvent` or int
  
          :param participant_id: The ID of the participant, if given.
          :type participant_id: str
  
          :rtype: :class:`canvasapi.calendar_event.CalendarEvent`