Time series forecasting is a powerful tool in planning and decision making, from traditional statistical models to soft computing and artificial intelligence approaches several methods have been developed to generate increasingly accurate forecasts. Fuzzy Time Series (FTS) methods have been introduced in the early 1990’s to handle data uncertainty and to undercome the statistical assumptions of linearity. Many studies have been reporting their good accuracy, simplicity, potential for interpretability and reduced computational complexity. This paper presents a tutorial for FTS methods. First, a review of the relevant literature is made, offering a foundation on the main concepts and FTS-based models for different time series and different types of forecasts. Then, the current challenges and possible solutions, are discussed alongside a timeline of the research developed in this area by the authors that aims at filling some of these gaps. Finally, a tutorial on the pyFTS library is presented. PyFTS is an open and free library coded in Python programming language that was developed by the MINDS Lab (Laboratory of Machine Intelligence and Data Science) and, also provides a set of transformation functions for pre-processing time series and a set of metrics and databases for benchmarking, in addition to implementing several FTS models in the literature.