def reserve_time_slot(self, calendar_event, participant_id=None, **kwargs):
from canvasapi.calendar_event import CalendarEvent<EOL>calendar_event_id = obj_or_id(calendar_event, "<STR_LIT>", (CalendarEvent,))<EOL>if participant_id:<EOL><INDENT>uri = '<STR_LIT>'.format(<EOL>calendar_event_id, participant_id<EOL>)<EOL><DEDENT>else:<EOL><INDENT>uri = '<STR_LIT>'.format(calendar_event_id)<EOL><DEDENT>response = self.__requester.request(<EOL>'<STR_LIT:POST>',<EOL>uri,<EOL>_kwargs=combine_kwargs(**kwargs)<EOL>)<EOL>return CalendarEvent(self.__requester, response.json())<EOL>
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`