Chef’s table with Revathi returns to Alwarpet this month — twelve seats.
See dates
Reservations

Reserve a table

Choose a branch, a day, your party size and a time. The branch confirms your table by phone or email.
Change or cancel a booking
1
Branch
2
Date
3
Guests
4
Time
5
Table
6
Your details
window.NLBK = window.NLBK || (function () {var D = [{"s":"chennai","c":"Chennai","a":"Alwarpet","n":"Nalam Alwarpet","p":"+91 44 4620 1414","e":"alwarpet@nalam.in","m":8,"w":60,"i":"https://images.unsplash.com/photo-1582228096960-7f5d2ec4aa8e?auto=format&fit=crop&w=800&h=500&q=75","h":{"mon":[["Dinner","19:00","23:30"]],"tue":[["Lunch","12:30","15:30"],["Dinner","19:00","23:30"]],"wed":[["Lunch","12:30","15:30"],["Dinner","19:00","23:30"]],"thu":[["Lunch","12:30","15:30"],["Dinner","19:00","23:30"]],"fri":[["Lunch","12:30","15:30"],["Dinner","19:00","23:30"]],"sat":[["Lunch","12:30","15:30"],["Dinner","19:00","23:30"]],"sun":[["Lunch","12:30","15:30"],["Dinner","19:00","23:30"]]},"x":{"2026-10-30":["Staff day",null]},"ar":[["Main room","Long room facing the hearth"],["Chef’s counter","Twelve stools around the fire"],["Verandah","Open-air, ceiling fans"]]},{"s":"bangalore","c":"Bengaluru","a":"Indiranagar","n":"Nalam Indiranagar","p":"+91 80 4718 2290","e":"indiranagar@nalam.in","m":10,"w":60,"i":"https://images.unsplash.com/photo-1573330013103-79abb849927b?auto=format&fit=crop&w=800&h=500&q=75","h":{"mon":[["Lunch","12:00","15:30"],["Dinner","19:00","23:30"]],"tue":[["Lunch","12:00","15:30"],["Dinner","19:00","23:30"]],"wed":[["Lunch","12:00","15:30"],["Dinner","19:00","23:30"]],"thu":[["Lunch","12:00","15:30"],["Dinner","19:00","23:30"]],"fri":[["Lunch","12:00","15:30"],["Dinner","19:00","23:30"]],"sat":[["Brunch","12:00","16:00"],["Dinner","19:00","23:59"]],"sun":[["Brunch","12:00","16:00"],["Dinner","19:00","23:00"]]},"x":{},"ar":[["Ground floor","Bar and grill counter"],["Terrace","Covered, open through the monsoon"]]},{"s":"mumbai","c":"Mumbai","a":"Bandra West","n":"Nalam Bandra","p":"+91 22 6914 0822","e":"bandra@nalam.in","m":6,"w":60,"i":"https://images.unsplash.com/photo-1569921894261-ecda0b2cc1af?auto=format&fit=crop&w=800&h=500&q=75","h":{"mon":[],"tue":[["Dinner","18:30","23:30"]],"wed":[["Dinner","18:30","23:30"]],"thu":[["Dinner","18:30","23:30"]],"fri":[["Dinner","18:30","01:00"]],"sat":[["Lunch","12:30","15:30"],["Dinner","18:30","01:00"]],"sun":[["Dinner","18:30","23:30"]]},"x":{},"ar":[["Bar","High tops along the copper bar"],["Dining room","Banquettes and two-tops"]]},{"s":"hyderabad","c":"Hyderabad","a":"Jubilee Hills","n":"Nalam Jubilee Hills","p":"+91 40 4855 3636","e":"jubileehills@nalam.in","m":12,"w":60,"i":"https://images.unsplash.com/photo-1669043962012-a5b8496cd664?auto=format&fit=crop&w=800&h=500&q=75","h":{"mon":[["Lunch","12:30","16:00"],["Dinner","19:00","23:30"]],"tue":[["Lunch","12:30","16:00"],["Dinner","19:00","23:30"]],"wed":[["Lunch","12:30","16:00"],["Dinner","19:00","23:30"]],"thu":[["Lunch","12:30","16:00"],["Dinner","19:00","23:30"]],"fri":[["Lunch","12:30","16:00"],["Dinner","19:00","23:30"]],"sat":[["Lunch","12:30","16:00"],["Dinner","19:00","23:30"]],"sun":[["Lunch","12:30","16:00"],["Dinner","19:00","23:30"]]},"x":{"2026-11-06":["Private event — dinner only",[["Dinner","20:00","23:30"]]]},"ar":[["Main room","Garden-facing windows"],["Garden","Under the neem trees"],["Private room","Seats up to 14"]]},{"s":"kochi","c":"Kochi","a":"Fort Kochi","n":"Nalam Fort Kochi","p":"+91 484 297 1402","e":"fortkochi@nalam.in","m":8,"w":60,"i":"https://images.unsplash.com/photo-1621246935353-ff54e60ab837?auto=format&fit=crop&w=800&h=500&q=75","h":{"mon":[["Lunch","12:00","15:30"],["Dinner","19:00","23:00"]],"tue":[["Dinner","19:00","23:30"]],"wed":[["Lunch","12:00","15:30"],["Dinner","19:00","23:00"]],"thu":[["Lunch","12:00","15:30"],["Dinner","19:00","23:00"]],"fri":[["Lunch","12:00","15:30"],["Dinner","19:00","23:00"]],"sat":[["Lunch","12:00","15:30"],["Dinner","19:00","23:00"]],"sun":[["Lunch","12:00","15:30"],["Dinner","19:00","23:00"]]},"x":{"2026-10-21":["Closed for Thiruvonam",null]},"ar":[["Courtyard","Open to the sky"],["Godown room","Laterite walls, teak beams"]]}];var S = { b: '', d: '', g: 0, t: '', a: 'any', ev: '', k: 1 }, R = null, M = null;var LABEL = ['', 'Branch', 'Date', 'Guests', 'Time', 'Table', 'Your details'];var WD = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];function P(n) { return ('0' + n).slice(-2); }function iso(d) { return d.getFullYear() + '-' + P(d.getMonth() + 1) + '-' + P(d.getDate()); }function parse(s) { return new Date(s + 'T12:00:00'); }function today() { return iso(new Date()); }function addDays(s, n) { var d = parse(s); d.setDate(d.getDate() + n); return iso(d); }function mins(t) { return +t.slice(0, 2) * 60 + +t.slice(3, 5); }function fmt(t) { var h = +t.slice(0, 2), m = t.slice(3, 5); return ((h % 12) || 12) + ':' + m + (h >= 12 && h < 24 ? ' PM' : ' AM'); }function longDate(s) { return parse(s).toLocaleDateString('en-IN', { weekday: 'long', day: 'numeric', month: 'long' }); }function root() { if (!R || !document.body.contains(R)) R = document.querySelector('.nl-res'); return R; }function q(s) { var r = root(); return r ? r.querySelector(s) : null; }function qa(s) { var r = root(); return r ? [].slice.call(r.querySelectorAll(s)) : []; }function br() { for (var i = 0; i < D.length; i++) if (D[i].s === S.b) return D[i]; return null; }function shifts(b, ds) { if (!b) return []; if (b.x[ds]) return b.x[ds][1] || []; return b.h[WD[parse(ds).getDay()]] || []; }function holiday(b, ds) { return b && b.x[ds] ? b.x[ds][0] : ''; }function el(tag, cls, txt) { var e = document.createElement(tag); if (cls) e.className = cls; if (txt != null) e.textContent = txt; return e; }function btn(cls, txt, fn) { var b = el('button', cls, txt); b.type = 'button'; b.onclick = fn; return b; }function slots(b, ds) {var out = [], now = new Date(), cut = now.getHours() * 60 + now.getMinutes() + 60, isToday = ds === today();shifts(b, ds).forEach(function (s) {var o = mins(s[1]), c = mins(s[2]); if (c <= o) c += 1440;for (var m = o; m <= c - 75; m += 30) { if (isToday && m < cut) continue; out.push({ shift: s[0], time: P(Math.floor(m / 60) % 24) + ':' + P(m % 60) }); }});return out;}function status(b) {var t = today(), now = new Date(), n = now.getHours() * 60 + now.getMinutes(), sh = shifts(b, t), i, s;for (i = 0; i < sh.length; i++) { s = sh[i]; var o = mins(s[1]), c = mins(s[2]); if (c <= o) c += 1440; if (n >= o && n < c) return { open: true, label: c - n <= 45 ? 'Closing soon' : 'Open now', detail: s[0] + ' until ' + fmt(s[2]) }; }for (i = 0; i < sh.length; i++) if (mins(sh[i][1]) > n) return { open: false, label: 'Closed now', detail: 'Opens ' + fmt(sh[i][1]) + ' for ' + sh[i][0].toLowerCase() };for (i = 1; i <= 7; i++) { var ds = addDays(t, i), nx = shifts(b, ds)[0]; if (nx) return { open: false, label: 'Closed now', detail: 'Opens ' + (i === 1 ? 'tomorrow' : parse(ds).toLocaleDateString('en-IN', { weekday: 'long' })) + ' ' + fmt(nx[1]) }; }return { open: false, label: 'Temporarily closed', detail: '' };}function done(k) { return k === 1 ? !!S.b : k === 2 ? !!S.d : k === 3 ? S.g > 0 : k === 4 || k === 5 ? !!S.t : false; }function reachable(k) { for (var i = 1; i < k; i++) if (!done(i)) return false; return true; }function canNext() { return S.k === 5 || done(S.k); }function steps() {qa('.nl-step').forEach(function (it) {var k = +((it.className.match(/nl-step-(\d)/) || [])[1] || 0); if (!k) return;it.classList.toggle('is-current', k === S.k);it.classList.toggle('is-done', k < S.k && done(k));it.classList.toggle('is-locked', k > S.k && !reachable(k));var num = it.querySelector('.nl-step-num'); if (num) num.textContent = k < S.k && done(k) ? '✓' : String(k);it.setAttribute('aria-current', k === S.k ? 'step' : 'false');});var bar = q('.nl-steps'), cur = q('.nl-step.is-current');if (bar && cur && bar.scrollWidth > bar.clientWidth) bar.scrollTo({ left: cur.offsetLeft - 16, behavior: 'smooth' });}function panels(focus) {qa('.nl-res-panel').forEach(function (p) {var k = +((p.className.match(/nl-p-(\d)/) || [])[1] || 0), on = k === S.k;p.classList.toggle('is-on', on);if (on && focus) { var h = p.querySelector('h1,h2,h3'); if (h) { h.setAttribute('tabindex', '-1'); try { h.focus({ preventScroll: true }); } catch (e) {} } }});var back = q('.nl-res-back'), next = q('.nl-res-next');if (back) back.style.visibility = S.k > 1 ? 'visible' : 'hidden';if (next) { next.style.display = S.k === 6 ? 'none' : ''; next.disabled = !canNext(); next.classList.toggle('is-disabled', !canNext()); }var r = root(); if (focus && r) { var top = r.getBoundingClientRect().top; if (top < 0) window.scrollTo({ top: window.pageYOffset + top - 120, behavior: 'smooth' }); }}function tiles() {D.forEach(function (b) {var st = status(b);qa('.nl-st-' + b.s).forEach(function (x) { x.textContent = st.label + (st.detail ? ' · ' + st.detail : ''); x.classList.toggle('is-open', st.open); });});qa('.nl-res-branch').forEach(function (t) { var on = !!S.b && t.classList.contains('nl-res-b-' + S.b); t.classList.toggle('is-selected', on); t.setAttribute('aria-checked', on ? 'true' : 'false'); });}function calendar() {var b = br(), c = q('.nl-cal'); if (!c) return; c.innerHTML = ''; if (!b) return;var min = today(), max = addDays(min, b.w || 60);if (!M) { var f = parse(S.d || min); M = new Date(f.getFullYear(), f.getMonth(), 1); }var head = el('div', 'nl-cal-head');var prevOk = iso(M) > min.slice(0, 8) + '01', nextOk = iso(new Date(M.getFullYear(), M.getMonth() + 1, 1)) <= max;var pv = btn('nl-cal-nav', '‹', function () { M = new Date(M.getFullYear(), M.getMonth() - 1, 1); calendar(); }); pv.disabled = !prevOk; pv.setAttribute('aria-label', 'Previous month');var nx = btn('nl-cal-nav', '›', function () { M = new Date(M.getFullYear(), M.getMonth() + 1, 1); calendar(); }); nx.disabled = !nextOk; nx.setAttribute('aria-label', 'Next month');var lab = el('p', 'nl-cal-month', M.toLocaleDateString('en-IN', { month: 'long', year: 'numeric' })); lab.setAttribute('aria-live', 'polite');head.appendChild(pv); head.appendChild(lab); head.appendChild(nx); c.appendChild(head);var g = el('div', 'nl-cal-grid'); g.setAttribute('role', 'grid');['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'].forEach(function (w) { g.appendChild(el('span', 'nl-cal-dow', w)); });var start = new Date(M); start.setDate(start.getDate() - ((start.getDay() + 6) % 7));for (var i = 0; i < 42; i++) {var d = new Date(start); d.setDate(start.getDate() + i);var ds = iso(d), off = ds < min || ds > max || !shifts(b, ds).length, hol = holiday(b, ds);var cell = btn('nl-cal-day' + (d.getMonth() !== M.getMonth() ? ' is-outside' : '') + (ds === S.d ? ' is-selected' : '') + (ds === min ? ' is-today' : ''), String(d.getDate()), (function (ds) { return function () { pick('date', ds); }; })(ds));cell.disabled = off;cell.setAttribute('aria-label', longDate(ds) + (off && ds >= min && ds <= max ? ', closed' + (hol ? ' (' + hol + ')' : '') : ''));if (hol) cell.title = hol;g.appendChild(cell);}c.appendChild(g);var lg = el('p', 'nl-cal-legend'); lg.appendChild(el('span', 'nl-cal-dot')); lg.appendChild(document.createTextNode(' Today · greyed-out days are closed or outside our booking window')); c.appendChild(lg);}function guests() {var b = br(), c = q('.nl-res-guests'), nt = q('.nl-res-gnote'); if (!c) return; c.innerHTML = ''; if (!b) return;for (var i = 1; i <= b.m; i++) {var o = btn('nl-guest' + (i === S.g ? ' is-selected' : ''), String(i), (function (i) { return function () { pick('guests', i); }; })(i));o.setAttribute('role', 'radio'); o.setAttribute('aria-checked', i === S.g ? 'true' : 'false'); c.appendChild(o);}if (nt) nt.textContent = 'Bigger group? Call ' + b.a + ' on ' + b.p + ' or ask about private dining.';}function times() {var b = br(), c = q('.nl-res-times'), nt = q('.nl-res-tnote'); if (!c) return; c.innerHTML = ''; if (!b || !S.d) return;var list = slots(b, S.d);if (!shifts(b, S.d).length) {if (nt) nt.textContent = b.a + ' is closed on ' + longDate(S.d) + '. ' + (holiday(b, S.d) || 'Choose another day.');c.appendChild(btn('nl-res-link', 'Choose another date', function () { go(2); })); return;}if (!list.length) {if (nt) nt.textContent = 'No more bookable times on ' + longDate(S.d) + '. Choose another day, or call ' + b.a + ' on ' + b.p + '.';c.appendChild(btn('nl-res-link', 'Choose another date', function () { go(2); })); return;}if (nt) nt.textContent = 'Times ' + b.a + ' serves on ' + longDate(S.d) + ' for ' + S.g + (S.g > 1 ? ' guests' : ' guest') + '. The branch confirms your table by phone or email.';var groups = {};list.forEach(function (s) {if (!groups[s.shift]) { var f = el('fieldset', 'nl-slots-group'); f.appendChild(el('legend', '', s.shift)); var w = el('div', 'nl-slots-grid'); f.appendChild(w); c.appendChild(f); groups[s.shift] = w; }var o = btn('nl-slot' + (s.time === S.t ? ' is-selected' : ''), '', (function (t) { return function () { pick('time', t); }; })(s.time));o.appendChild(el('span', 'nl-slot-time', fmt(s.time))); o.setAttribute('aria-pressed', s.time === S.t ? 'true' : 'false');groups[s.shift].appendChild(o);});}function areas() {var b = br(), c = q('.nl-res-areas'); if (!c) return; c.innerHTML = ''; if (!b) return;function card(key, title, body) {var o = btn('nl-area' + (S.a === key ? ' is-selected' : ''), '', function () { pick('area', key); });o.appendChild(el('strong', '', title)); o.appendChild(el('span', '', body)); o.setAttribute('aria-pressed', S.a === key ? 'true' : 'false'); return o;}c.appendChild(card('any', 'No preference', 'We’ll seat you at the best table for your party. Recommended.'));(b.ar || []).forEach(function (a) { c.appendChild(card(a[0], a[0], a[1])); });}function summary() {var b = br();function set(k, v) { qa('.nl-res-sum-' + k).forEach(function (x) { x.textContent = v || '—'; }); }set('branch', b ? b.n : ''); set('date', S.d ? longDate(S.d) : ''); set('guests', S.g ? String(S.g) : ''); set('time', S.t ? fmt(S.t) : '');set('table', S.t ? (S.a === 'any' ? 'No preference' : S.a) : '');qa('.nl-res-ch').forEach(function (x) { var k = +((x.className.match(/nl-ch-(\d)/) || [])[1] || 0); x.style.visibility = k && done(k) ? 'visible' : 'hidden'; });var ph = q('.nl-res-sum-phone'); if (ph) { ph.textContent = b ? b.p : ''; ph.style.display = b ? '' : 'none'; if (b) ph.setAttribute('href', 'tel:' + b.p.replace(/\s/g, '')); }var im = q('.nl-res-sum-img img'); if (im && b) { im.src = b.i; im.alt = b.n; }fill();}function fill() {var b = br(), f = q('.nl-form'); if (!f) return;function set(nm, v) {var x = f.querySelector('[data-fieldname="' + nm + '"] input,[data-fieldname="' + nm + '"] select,[data-fieldname="' + nm + '"] textarea,[name="' + nm + '"]');if (x && v !== '' && x.value !== String(v)) { x.value = v; x.dispatchEvent(new Event('change', { bubbles: true })); x.dispatchEvent(new Event('input', { bubbles: true })); }}set('branch', b ? b.n : ''); set('booking_date', S.d); set('booking_time', S.t); set('guests', S.g || '');set('seating_preference', S.t ? (S.a === 'any' ? 'No preference' : S.a) : '');if (S.ev) set('special_requests', 'For the event: ' + S.ev);var fb = q('.nl-res-fallback'); if (fb && f.querySelector('input,select,textarea')) fb.classList.add('is-hidden');var m = q('.nl-res-mail');if (m && b) {var body = 'Hello ' + b.a + ',\n\nI would like a table for ' + (S.g || '') + ' on ' + (S.d ? longDate(S.d) : '') + ' at ' + (S.t ? fmt(S.t) : '') + (S.a !== 'any' ? ' (' + S.a + ' if possible)' : '') + '.\n\nName:\nMobile:\n';m.setAttribute('href', 'mailto:' + b.e + '?subject=' + encodeURIComponent('Table request: ' + b.n) + String.fromCharCode(38) + 'body=' + encodeURIComponent(body));}}function render(focus) { steps(); tiles(); calendar(); guests(); times(); areas(); summary(); panels(focus); }function go(k) { if (k >= 1 && k <= 6 && reachable(k)) { S.k = k; if (k === 2) M = null; render(true); } }function next() { if (canNext()) go(Math.min(S.k + 1, 6)); }function back() { go(Math.max(S.k - 1, 1)); }function later(k) { setTimeout(function () { go(k); }, 180); }function pick(kind, v) {var b;if (kind === 'branch') {S.b = v; S.t = ''; S.a = 'any'; b = br();if (S.d && !shifts(b, S.d).length) S.d = '';if (S.g > b.m) S.g = 0;render(false); later(S.d ? (S.g ? 4 : 3) : 2);} else if (kind === 'date') { S.d = v; S.t = ''; render(false); later(S.g ? 4 : 3); }else if (kind === 'guests') { S.g = +v; S.t = ''; render(false); later(4); }else if (kind === 'time') { S.t = v; render(false); later(5); }else if (kind === 'area') { S.a = v; render(false); }}function init() {var r = root(); if (!r || r.__nl) return; r.__nl = 1; r.classList.add('nl-js');var p = new URLSearchParams(location.search), b = p.get('branch'), d = p.get('date'), g = +p.get('guests') || 0;S.ev = p.get('event') || '';var known = D.some(function (x) { return x.s === b; });if (known) {S.b = b; var bb = br();if (d && /^\d{4}-\d{2}-\d{2}$/.test(d) && d >= today() && shifts(bb, d).length) S.d = d;if (g && g <= bb.m) S.g = g;}S.k = S.b ? (S.d ? (S.g ? 4 : 3) : 2) : 1;render(false);var t = 0, iv = setInterval(function () { fill(); if (++t > 20) clearInterval(iv); }, 500);}return { init: init, pick: function (k, v) { init(); pick(k, v); }, go: function (k) { init(); go(k); }, next: function () { init(); next(); }, back: function () { init(); back(); }, fill: fill };})();

Which Nalam would you like to visit?

Chennai
Nalam Alwarpet
Tamil & Chettinad, cooked over tamarind wood
Bengaluru
Nalam Indiranagar
Coastal Karnataka & Kodava, with a charcoal grill
Mumbai
Nalam Bandra
Konkan coast seafood & a cocktail bar
Hyderabad
Nalam Jubilee Hills
Deccan & Andhra, with a charcoal dum kitchen
Kochi
Nalam Fort Kochi
Malabar & Syrian Christian, with the day’s catch

Which day?

Choose a branch first.

How many guests?

Bigger group? Call the branch or ask about private dining.
Contact us

What time suits you?

Choose a branch, a day and a party size first.

Any preference on where you sit?

A preference, not a guarantee: the branch seats you as close to it as it can.

Who is the booking for?

If the booking form has not loaded, send your details to the branch and they will confirm by phone or email.
By booking you agree to our terms. Free changes and cancellation up to two hours before: call the branch.
Terms
Branch
—
Date
—
Guests
—
Time
—
Table
—
Choose a branch, a day, a party size and a time above; the branch confirms by phone or email
To change or cancel, call the branch with the name on the booking. Free up to two hours before
Nine or more? Call the branch and we’ll set up a long table

Change, cancel or prefer to call?

Chennai

Nalam Alwarpet
+91 44 4620 1414
Valet parking from 7 PM; limited street parking on St. Mary’s Road

Bengaluru

Nalam Indiranagar
+91 80 4718 2290
Paid parking at 100 Feet Road complex, 3 minutes’ walk; valet on Friday and Saturday

Mumbai

Nalam Bandra
+91 22 6914 0822
No dedicated parking; valet available at the door from 8 PM

Hyderabad

Nalam Jubilee Hills
+91 40 4855 3636
Free on-site parking for 40 cars

Kochi

Nalam Fort Kochi
+91 484 297 1402
Street parking on Princess Street; we recommend an auto or a walk from the ferry
© 2026 Nalam Hospitality Pvt. Ltd.
PrivacyTerms
Back to top