Начал заниматься футболом в родном городе Котор. Первым профессиональным клубом был «Бокель». В 19 лет перешёл в немецкую «Боруссию» Дортмунд, играл за молодёжную команду. Несмотря на то, что соглашение было заключено по системе «1+4» и клуб был готов продолжить сотрудничество, агент Кашчелана настоял на том, чтобы он покинул команду[4]. 1 июля 2003 года перешёл в «Карлсруэ»[5]. За основную команду провёл всего 2 матча[6], в основном играя за вторую команду[7]. После этого выступал за ОФК Белград, «Спартак» Суботица, «Вождовац». Летом 2007 года перешёл в польскую «Лодзь»[8]. Дебютировал за новый клуб 20 октября 2007 года в игре против «Гурника» (0:1)[9]. В команде стал основным игроком и считался одним из лучших центральных полузащитников Экстраклассы[4].
Летом 2009 года перешёл во львовские «Карпаты», подписав 3-летний контракт[10]. В Премьер-лиге дебютировал 30 августа 2009 года в матче против киевской «Оболони» (5:0)[11]. Кашчелан вышел на 72 минуте вместо нигерийца Самсона Годвина, в добавленное время получил жёлтую карточку[12].
13 июня 2013 года подписал двухлетний контракт с тульским «Арсеналом»[17]. Первый матч в ФНЛ провёл 13 июля против «Сибири» (2:0)[18]. 2 августа 2014 года дебютировал в Премьер-лиге, выйдя в стартовом составе против «Зенита» (0:4)[19]. 28 января 2016 перешёл в клуб ФНЛ «Тосно»[20]. 8 августа 2017 контракт был досрочно расторгнут[21]. 12 августа 2017 года на правах свободного агента перешёл в «Тамбов»[22]. В сезоне 2018/19 клуб занял 1 место в ФНЛ и вышел в РПЛ[23].
5 августа 2019 года стал игроком «Балтики»[24]. Дебютировал за новый клуб 10 августа в матче против «Мордовии» (3:0)[25]. 13 октября 2020 года забил первый гол в игре против «Чертаново» (1:2)[26]. 27 августа 2022 года провёл 100-й матч за «Балтику»[27]. 3 июня 2023 года сыграл свой последний матч в карьере[28].
6 июня 2009 года дебютировал за сборную Черногории, отыграв все 90 минут против Кипра (2:2)[29]. 31 октября 2014 года после двухлетнего перерыва Кашчелан вновь получил приглашение в национальную сборную Черногории[30]. 31 мая 2016 года сыграл за сборную последний матч против Турции (0:1)[31][32].
Женат на сербской модели Марияне Крижанович, ставшей футбольным агентом[33]. На правом плече Кашчелана есть татуировки в виде китайских иероглифов, означающих его жизненный девиз: Бог, успех, семья[34].
Хорошо говорит на русском языке, также владеет сербским, польским, английским, немецким и немного болгарским[35].
19 ноября 2022 года получил российское гражданство[36][37].
↑[sport24.ru/news/football/2022-11-19-futbolist-baltiki-kashchelan-poluchil-rossiyskoye-grazhdanstvo Футболист «Балтики» Кашчелан получил российское гражданство - 19 ноября 2022 - Sport24](рус.). sport24.ru. Дата обращения: 26 ноября 2022. Архивировано 26 ноября 2022 года.
Некоторые внешние ссылки в этой статье ведут на сайты, занесённые в спам-лист
Эти сайты могут нарушать авторские права, быть признаны неавторитетными источниками или по другим причинам быть запрещены в Википедии. Редакторам следует заменить такие ссылки ссылками на соответствующие правилам сайты или библиографическими ссылками на печатные источники либо удалить их (возможно, вместе с подтверждаемым ими содержимым).