Skip to main content

Menu template for Google Docs

A restaurant menu grouped by course with dishes, descriptions and prices, generated from your dish list whenever it changes.

Google Docs PDF export No watermark

Free plan, no credit card. Bring your own design or start from this layout.

The actual template Menu template for Google Docs shown in Google Docs

What’s in this template

Every block is bound to a field in your data. The layout stays exactly as designed; only the values change from one run to the next.

  • Header with the venue name and service {{venue.name}} · {{menu.service}}
  • Course heading repeated for each group loop: {{courses}}
  • Dish line with description and price loop: {{dishes}}
  • Dietary and allergen markers per dish {{dish.markers}}
  • Set menu and supplements block {{menu.setPrice}}
  • Footer with service charge and date {{menu.footnote}} · {{menu.date}}

How this template fills itself

Connect Airtable, Google Sheets, a SQL database, a CSV or a REST API, map each field to a placeholder, and generate. One run can produce a single document or one per matching record.

Product & catalogs: A restaurant menu grouped by course with dishes, descriptions and prices, generated from your dish list whenever it changes.

Dishes · Google Sheets

CourseDishPrice
StartersSalt cod croquettes$9
MainsHake, brown butter, capers$26
DessertsBurnt basque cheesecake$8

Template: Google Slides or Docs

{{venue.name}}

{{menu.service}} · {{menu.date}}

loop: {{courses}} → heading

loop: {{dishes}} → line

{{dish.price}}

dishes grouped by course, filtered to what is on tonight

Generated output

DocsPDF

The Harbour Room

Dinner · 16 Sep 2026

4 course headings

19 dish lines

$26

Who uses this template

Restaurants and bars

Reprint the menu when a dish or a price changes, without reformatting the whole page each time.

Read the guide

Multi-site groups

Generate a menu per site from one dish list, with each venue's own prices and availability.

Read the guide

Caterers and event venues

Produce a menu per event from the dishes chosen for it, printed the morning of service.

Read the guide

A menu is a grouped list: courses in a fixed order, dishes under each, a price at the end of every line. It changes more often than anyone plans for — a supplier is short, a price moves, a dish comes off — and each change usually means someone reflowing a page at four in the afternoon. Because the number of dishes per course varies, this is a Google Doc.

Keep dishes as rows and courses as an order

Hold every dish as a row carrying its course, description, price and any dietary markers, plus a flag for whether it is on today. The document then nests two loops: courses on the outside, dishes on the inside. Taking a dish off is a checkbox rather than a deletion, so it comes back next week without being retyped, and a group with several sites generates one menu per site from the same list at each site’s own prices.

Common questions, answered

How does the grouping by course work? +
As a nested loop. The outer loop repeats a heading for each course in order — starters, mains, desserts — and the inner loop repeats a dish line under it. Adding a course or moving a dish between courses is a change in the sheet, not a reformatting job in the document.
Can each site have its own prices? +
Yes. Hold the price against the dish and the site rather than in the layout, then run the menu once per site. Each venue gets the same dishes at its own prices, and dishes a site does not serve are filtered out of that run entirely.
Can it show allergens and dietary markers? +
Yes, as fields on the dish row. Markers print beside the dish name wherever the designer placed them, so they stay consistent across every reprint. Because they live in the data, a kitchen change updates every menu the next time you generate rather than only the one someone remembered to edit.
Can I use my own menu design? +
Yes. Menus are typographic and most venues have a look they will not give up. Build the menu in Google Docs with your own typeface, spacing and rules, mark the course headings and dish lines as repeating placeholders, and generate against that.

Generate this document from your data

Start on the free plan, connect a data source, and export a real Google Docs document. No watermark, no credit card.