{"id":4530,"date":"2025-05-13T14:29:32","date_gmt":"2025-05-13T12:29:32","guid":{"rendered":"https:\/\/datalchemy.net\/nos-prestations\/automatic-creation-of-schedules\/"},"modified":"2025-08-19T10:18:37","modified_gmt":"2025-08-19T08:18:37","slug":"automatic-creation-of-schedules","status":"publish","type":"projet","link":"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/","title":{"rendered":"Automatic creation of schedules"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Context<\/h2>\n\n<p>The start of the 2020 school year sees the completion of the new baccalaur\u00e9at, an ambitious reform launched in 2018 that redesigns not only the exam itself, but also the entire three-year lyc\u00e9e course. From September 2019, the appearance of particularly complex timetables in premi\u00e8re classes &#8211; both general and technological &#8211; has highlighted the tension between school time and space. However, it would be simplistic to attribute this complexity exclusively to the reform: it is also the result of the multiplicity of option wishes and the diversity of student profiles, to which are naturally added the imperatives of teaching human resources.  <\/p>\n\n<h2 class=\"wp-block-heading\">Issues<\/h2>\n\n<p>The aim of this project is to provide an intelligent, automated response to this twofold problem:<\/p>\n\n<ol class=\"wp-block-list\">\n<li><strong>Dynamic generation of groups<\/strong><br\/>Based on the options and time slots requested by each pupil, the tool automatically builds the optimum groups (or &#8220;groups&#8221;), guaranteeing that each pupil can follow all the lessons chosen.<\/li>\n\n\n\n<li><strong>Minimize conflicts and comply with HR constraints<\/strong><br\/>By integrating teachers&#8217; availability and regulatory obligations, the scheduling engine minimizes overlapping schedules and complies with course load, preparation and supervision rules.<\/li>\n<\/ol>\n\n<h2 class=\"wp-block-heading\">Achievements<\/h2>\n\n<p>In this project, we first <strong>modeled the<\/strong> key <strong>business entities<\/strong> (students, teachers, time slots, rooms, options, etc.), translating each element of the school into objects that can be manipulated by the algorithm. We then <strong>formalized the set of constraints<\/strong> in two forms: <\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Hard constraints<\/strong>, failure to respect which renders any proposed timetable invalid (e.g.: a teacher cannot be in two places at once).<\/li>\n\n\n\n<li><strong>Soft constraints<\/strong>, which do not induce strict failure, but serve to weight and improve the quality of solutions (time preferences, equity of distribution, etc.).<\/li>\n<\/ul>\n\n<p>To solve this complex scheduling problem, we <strong>used the Timefold solver<\/strong>, renowned for its efficiency on large-scale schedules, and adapted its heuristics to our specific business requirements. Finally, we <strong>set up an industrial pipeline<\/strong> that integrates directly with the existing application platform: from request ingestion to automatic schedule generation, via version management and continuous monitoring, guaranteeing smooth production start-up and simplified maintenance. <\/p>\n\n<p><\/p>\n","protected":false},"featured_media":3754,"template":"","meta":{"_acf_changed":false,"inline_featured_image":false},"tags":[185,183,181,188],"class_list":["post-4530","projet","type-projet","status-publish","has-post-thumbnail","hentry","tag-fastapi-en","tag-python-en","tag-react-en","tag-timefold-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Automatic creation of schedules - Datalchemy<\/title>\n<meta name=\"description\" content=\"Development of a planning tool based on Timefold for automatic timetabling at the start of the year.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automatic creation of schedules - Datalchemy\" \/>\n<meta property=\"og:description\" content=\"Development of a planning tool based on Timefold for automatic timetabling at the start of the year.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/\" \/>\n<meta property=\"og:site_name\" content=\"Datalchemy\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-19T08:18:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/05\/Creation-automatique-demplois-du-temps-pour-des-etudiants.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/\",\"url\":\"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/\",\"name\":\"Automatic creation of schedules - Datalchemy\",\"isPartOf\":{\"@id\":\"https:\/\/datalchemy.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/05\/Creation-automatique-demplois-du-temps-pour-des-etudiants.png\",\"datePublished\":\"2025-05-13T12:29:32+00:00\",\"dateModified\":\"2025-08-19T08:18:37+00:00\",\"description\":\"Development of a planning tool based on Timefold for automatic timetabling at the start of the year.\",\"breadcrumb\":{\"@id\":\"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/#primaryimage\",\"url\":\"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/05\/Creation-automatique-demplois-du-temps-pour-des-etudiants.png\",\"contentUrl\":\"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/05\/Creation-automatique-demplois-du-temps-pour-des-etudiants.png\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/datalchemy.net\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Projects\",\"item\":\"https:\/\/datalchemy.net\/en\/our-services\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Automatic creation of schedules\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/datalchemy.net\/en\/#website\",\"url\":\"https:\/\/datalchemy.net\/en\/\",\"name\":\"Datalchemy\",\"description\":\"Expertise, accompagnement  et R&amp;D en data et IA\",\"publisher\":{\"@id\":\"https:\/\/datalchemy.net\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/datalchemy.net\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/datalchemy.net\/en\/#organization\",\"name\":\"Datalchemy\",\"url\":\"https:\/\/datalchemy.net\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/datalchemy.net\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/08\/logo-datalchemy.gif\",\"contentUrl\":\"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/08\/logo-datalchemy.gif\",\"width\":696,\"height\":696,\"caption\":\"Datalchemy\"},\"image\":{\"@id\":\"https:\/\/datalchemy.net\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/sas-datalchemy\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automatic creation of schedules - Datalchemy","description":"Development of a planning tool based on Timefold for automatic timetabling at the start of the year.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/","og_locale":"en_US","og_type":"article","og_title":"Automatic creation of schedules - Datalchemy","og_description":"Development of a planning tool based on Timefold for automatic timetabling at the start of the year.","og_url":"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/","og_site_name":"Datalchemy","article_modified_time":"2025-08-19T08:18:37+00:00","og_image":[{"url":"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/05\/Creation-automatique-demplois-du-temps-pour-des-etudiants.png","width":1024,"height":1024,"type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/","url":"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/","name":"Automatic creation of schedules - Datalchemy","isPartOf":{"@id":"https:\/\/datalchemy.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/#primaryimage"},"image":{"@id":"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/#primaryimage"},"thumbnailUrl":"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/05\/Creation-automatique-demplois-du-temps-pour-des-etudiants.png","datePublished":"2025-05-13T12:29:32+00:00","dateModified":"2025-08-19T08:18:37+00:00","description":"Development of a planning tool based on Timefold for automatic timetabling at the start of the year.","breadcrumb":{"@id":"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/#primaryimage","url":"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/05\/Creation-automatique-demplois-du-temps-pour-des-etudiants.png","contentUrl":"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/05\/Creation-automatique-demplois-du-temps-pour-des-etudiants.png","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/datalchemy.net\/en\/our-services\/automatic-creation-of-schedules\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/datalchemy.net\/en\/"},{"@type":"ListItem","position":2,"name":"Projects","item":"https:\/\/datalchemy.net\/en\/our-services\/"},{"@type":"ListItem","position":3,"name":"Automatic creation of schedules"}]},{"@type":"WebSite","@id":"https:\/\/datalchemy.net\/en\/#website","url":"https:\/\/datalchemy.net\/en\/","name":"Datalchemy","description":"Expertise, accompagnement  et R&amp;D en data et IA","publisher":{"@id":"https:\/\/datalchemy.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/datalchemy.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/datalchemy.net\/en\/#organization","name":"Datalchemy","url":"https:\/\/datalchemy.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/datalchemy.net\/en\/#\/schema\/logo\/image\/","url":"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/08\/logo-datalchemy.gif","contentUrl":"https:\/\/datalchemy.net\/wp-content\/uploads\/2025\/08\/logo-datalchemy.gif","width":696,"height":696,"caption":"Datalchemy"},"image":{"@id":"https:\/\/datalchemy.net\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/sas-datalchemy\/"]}]}},"_links":{"self":[{"href":"https:\/\/datalchemy.net\/en\/wp-json\/wp\/v2\/projet\/4530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datalchemy.net\/en\/wp-json\/wp\/v2\/projet"}],"about":[{"href":"https:\/\/datalchemy.net\/en\/wp-json\/wp\/v2\/types\/projet"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/datalchemy.net\/en\/wp-json\/wp\/v2\/media\/3754"}],"wp:attachment":[{"href":"https:\/\/datalchemy.net\/en\/wp-json\/wp\/v2\/media?parent=4530"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datalchemy.net\/en\/wp-json\/wp\/v2\/tags?post=4530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}