Last release:2018-09-23
AuthorsJochen Herz, Rolf Wilhelm, Roland Jesse, Ralf K├╝rbitz, Robert Freitag, Uwe Klatt, Werner F. Bruhin
Active membersJochen Herz, Rolf Wilhelm

CookML is the description of a recipe exchange format, which allows the exchange of a comprehensive set of data between different programs.
CookML was created out of the need to be able to transfer all available recipe data of the recipe program Kalorio. An available option was MealMaster (a text format definition) that is a widely used format and easy to read, however it allows only the transfer of very basic recipe data.
CookML was defined through an open discussion between a number of software developers of recipe and catering trade software applications to ensure that the format would allow the exchange of recipe data between different programs and would not become an isolated solution for one program.
The basis for CookML is XML (Extensible Markup Language, a W3C standard). Its open format provides the possibility to exchange any type of additional information for a recipe between users of different recipe software applications. This format allows for the inclusion of images with the recipe, menus and to assign a “Bundeslebensmittelschl├╝ssel” code (BLS, a German definition for ingredients and production) to ingredients.
Should the current revision of CookML not allow for a particular type of recipe data to be exchanged it is possible to extend the format and to define a new revision by making arrangements with the authors. Leave a comment here who will then make contact with you.
CookML is provided free of charge. Any software developer is allowed, even encouraged, to use the format in his software, project, tool or internet portal. As we like to know where CookML is used, please drop us a message and we will add your software to the list.

The following are the only conditions to be respected when using CookML:

  1. The specifications detailed on these pages have to be respected. It is not allowed to add or change "tags" or "elements" without making arrangements with the authors for a new revision
  2. All fields ("tags", "elements") defined in the DTD (Document Type Defininitions) as "#Required" are mandatory and have to be supported as defined by the following specifications and have to be passed on. This is the reason to only have defined the most important fields as mandatory allowing an easy implementation of this standard format
  3. Every program or project has to provide a link to this page (https://www.3lands.ch/cookml), so that everyone can view the specifications for CookML
  4. When a CookML file is transferred/exported it has to use a file extension of ".cml"

Download the whole definition here as PDF.


VersionDateChange description
1.1.32018-09-23“Ambrosia”: new menu elements: frontpage, backpage
“Ambrosia”: new menu tags: date