🍽️ What’s for lunch? Discover our 3-week menu →

Download our printable menu

Caring for your kids’ lunch

Caring for your kids’ lunch

The lunchbox that makes your life easier

In The Netherlands, we deliver a variety of hot meals directly to schools every day. The children enjoy a balanced diet, whilst parents save time and enjoy greater peace of mind.

NEW HSV schools only

Baguette sandwich + fresh fruit from 5,30 €

Made fresh every morning Traditional French bread Served with a fresh fruit

.dj-sw-callout { --dj-sw-gold: #E0C070; --dj-sw-green: #7FA85A; --dj-sw-ink: #4A4640; box-sizing: border-box; margin: 20px 0 4px; padding: 14px 18px; border: 1px solid var(--dj-sw-gold); border-radius: 14px; background: #FFFCF2; font-family: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif; color: var(--dj-sw-ink); } .dj-sw-callout p { margin: 0; } .dj-sw-callout *, .dj-sw-callout *::before { box-sizing: inherit; } /* Ligne 1 : la pastille NEW et la restriction, en petit. */ .dj-sw-kicker { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; } .dj-sw-new { padding: 3px 10px; border-radius: 999px; background: #F7DC8A; color: #7A6114; font-size: 11px; font-weight: 600; letter-spacing: 0.1em; line-height: 1.5; } .dj-sw-only { font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dj-sw-green); } /* Ligne 2 : titre et prix sur la meme ligne, le prix pousse a droite. flex-wrap garde un rendu propre si la colonne se resserre. */ .dj-sw-main { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; } .dj-sw-title { font-size: 17px; font-weight: 500; line-height: 1.35; } .dj-sw-emoji { font-size: 0.95em; } .dj-sw-price { flex: 0 0 auto; color: var(--dj-sw-green); font-size: 19px; font-weight: 600; white-space: nowrap; } /* Ligne 3 : les 3 arguments condenses en une seule ligne discrete. */ .dj-sw-points { margin-top: 6px; font-size: 12.5px; line-height: 1.5; color: #7C766C; } .dj-sw-sep { margin: 0 2px; color: var(--dj-sw-gold); } @media (max-width: 767px) { .dj-sw-callout { padding: 12px 14px; } .dj-sw-title { font-size: 15px; } .dj-sw-price { font-size: 17px; } }

Menu

Balanced meals, for a better days at school

Each meal consists of a warm main course and a dessert.
To accommodate different tastes and dietary needs, we offer three menu options:

Standard menu

Meat-free menu

Pork-free menu

The main dishes are homemade, prepared the day before.
Meals are warmed and delivered directly where you child eat.
Once the meal is finished, the lunch boxes are collected and washed.

Cutlery and a glass are provided for your child.

The weights are adapted to the age of the children. We therefore have three different sizes of lunch box:

Small

For 2 to 5 years old.

Medium

For 6 to 11 years old.

Large

For 12 to 18 years old.

Menu

Sustainable boxes and food security

We chose the MB Original model from monbento® for its design, but above all for its safety. Made in France, our lunch boxes are guaranteed to be free from BPA and BPS. They are made from inert plastic and comply with international food safety regulations. The high-quality materials (PBT), certified for food contact, guarantee that no substances are transferred, even after microwaving.

The Subscription

starting from

€ 7,75/meal
  • Select your child's days
  • €15 for annual administration fees
  • Changes & absences (10 days' notice)
  • Can be cancelled at any time (1 month's notice required)
Subscribe

Price per meal from 4 days a week.

Single Orders

starting from

€ 8,60/hot meal NEW, HSV ONLY€ 5,30/baguette sandwich
  • Ideal in last minute
  • If you want to choose meals in menus
  • Order by 8 pm the day before
  • No charge for the Monbento box (€30 if not collected)
Order Now

Prices vary with the number of meals ordered.

.dj-pt-grid { --dj-pt-green: #95C11F; --dj-pt-ink: #1C2448; --dj-pt-body: #F9FAFD; --dj-pt-text: #5A6270; box-sizing: border-box; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; width: 100%; font-family: "Now", "Poppins", system-ui, -apple-system, sans-serif; } .dj-pt-grid *, .dj-pt-grid *::before { box-sizing: inherit; } .dj-pt-grid p { margin: 0; } .dj-pt-card { display: flex; flex-direction: column; background: var(--dj-pt-body); } /* En-tete vert */ .dj-pt-head { padding: 18px 16px; background: var(--dj-pt-green); text-align: center; } .dj-pt-title { color: #FFFFFF; font-size: 24px; font-weight: 700; line-height: 1.3; } /* Bloc prix. min-height calee sur la carte la plus haute (mention + deux lignes) pour que les listes des deux cartes demarrent a la meme hauteur. */ .dj-pt-prices { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 198px; padding: 28px 20px; color: var(--dj-pt-ink); } /* Selecteur scope (.dj-pt-grid .dj-pt-from) : la remise a zero ".dj-pt-grid p{margin:0}" ci-dessus a une specificite superieure a une simple classe et avalait la marge. */ .dj-pt-grid .dj-pt-from { margin-bottom: 18px; font-size: 15px; font-weight: 500; line-height: 1.4; } /* Grille 2 colonnes : le montant est cale a droite et le libelle a gauche, sinon centrer chaque ligne separement decale les chiffres l'un par rapport a l'autre, les libelles n'ayant pas la meme longueur. */ .dj-pt-rows { display: grid; grid-template-columns: auto auto; justify-content: center; align-items: baseline; column-gap: 12px; row-gap: 8px; } .dj-pt-amount { font-size: 40px; font-weight: 700; line-height: 1.15; text-align: right; white-space: nowrap; } .dj-pt-label { font-size: 17px; font-weight: 500; text-align: left; } /* L'etiquette vit DANS la cellule du montant, qui est alignee a droite : les deux chiffres restent donc alignes et l'etiquette deborde vers la gauche sur la seule ligne sandwich. La sortir dans une 3e colonne decalerait tout le bloc. Jaune reprise de l'encadre NEW en haut de page, pour lier les deux. */ .dj-pt-tag { display: inline-block; margin-right: 12px; padding: 4px 9px; border-radius: 999px; background: #F7DC8A; color: #7A6114; font-size: 11px; font-weight: 600; letter-spacing: 0.06em; line-height: 1.4; vertical-align: middle; white-space: nowrap; } /* Liste d'arguments, coche verte en SVG inline pour eviter une dependance a Font Awesome. */ .dj-pt-list { margin: 0; padding: 0 32px; list-style: none; } .dj-pt-list li { position: relative; margin-bottom: 18px; padding-left: 34px; color: var(--dj-pt-text); font-size: 17px; line-height: 1.5; } .dj-pt-list li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; background: no-repeat center/18px 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='%2395C11F'%3E%3Cpath d='M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z'/%3E%3C/svg%3E"); } /* Pied : margin-top auto colle le bouton en bas, les deux cartes restent alignees. */ .dj-pt-foot { margin-top: auto; padding: 12px 24px 60px; text-align: center; } /* Selecteurs volontairement lourds (.dj-pt-grid a.dj-pt-btn) : le theme impose une couleur de lien verte a une specificite superieure, ce qui rendait le libelle du bouton plein vert sur vert, donc invisible. */ .dj-pt-grid a.dj-pt-btn { display: inline-block; padding: 16px 55px; border: 1px solid var(--dj-pt-green); border-radius: 100px; font-size: 16px; font-weight: 400; line-height: 1; text-decoration: none; transition: background-color 0.2s ease, color 0.2s ease; } .dj-pt-grid a.dj-pt-btn-solid { background: var(--dj-pt-green); color: #FFFFFF; } .dj-pt-grid a.dj-pt-btn-solid:hover, .dj-pt-grid a.dj-pt-btn-solid:focus { background: #FFFFFF; color: var(--dj-pt-green); } .dj-pt-grid a.dj-pt-btn-outline { background: #FFFFFF; color: var(--dj-pt-green); } .dj-pt-grid a.dj-pt-btn-outline:hover, .dj-pt-grid a.dj-pt-btn-outline:focus { background: var(--dj-pt-green); color: #FFFFFF; } /* Meme raison que .dj-pt-from : selecteur scope pour survivre a la remise a zero. */ .dj-pt-grid .dj-pt-note { margin-top: 18px; color: var(--dj-pt-text); font-size: 15px; line-height: 1.5; } @media (max-width: 1024px) { .dj-pt-grid { gap: 24px; } .dj-pt-amount { font-size: 34px; } .dj-pt-list { padding: 0 20px; } .dj-pt-grid a.dj-pt-btn { padding: 14px 34px; } } @media (max-width: 767px) { .dj-pt-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; } .dj-pt-prices { min-height: 0; padding: 24px 16px; } .dj-pt-foot { padding-bottom: 32px; } }

Send a Message

Would you like to know more? Our team will be happy to answer your questions and explain how we operate.