Booking Bot with NLP: Mobile UI & Calendar Integration

TRUETECH is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Booking Bot with NLP: Mobile UI & Calendar Integration
Medium
~3-5 days
Frequently Asked Questions

Our competencies:

Development stages

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    860
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    746
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1163
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1035
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    970
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    563

Have you ever had a client write "book me for tomorrow at 4 PM" and the system throws an awkward calendar picker? According to our data, 30% of potential bookings are lost at the time selection stage. Our booking bot development service integrates NLP time parsing, reducing booking time by 50%: users spend 10–15 seconds instead of 40–50 manually searching for a slot. Businesses using our booking bot development see a 50% increase in booking completion rate.

We build booking bots that understand natural language and integrate with any calendar system. Unlike native pickers, a conversational interface reduces booking time by 50%: users simply type “book me for tomorrow at 4 PM,” the bot finds available slots and asks for confirmation. The challenge is not just parsing dates, but ensuring reliable operation with real-world constraints. With 5+ years of experience and 50+ completed projects, we deliver robust solutions. Our development cost starts from $2,500, and clients typically save $800 per month through reduced no-shows.

The main technical difficulty is parsing arbitrary time expressions: “tomorrow afternoon,” “Friday morning,” “next week, preferably evening.” This is an NLP task. We use Natasha for Russian, Dialogflow with system entities, or Rasa with Duckling.

Booking Bot Development: NLP Time Parsing

For Russian, Natasha (Python library) extracts dates and times from unstructured text well:

from natasha import Segmenter, MorphVocab, NewsEmbedding, NewsDatesExtractor

segmenter = Segmenter()
morph_vocab = MorphVocab()
emb = NewsEmbedding()
dates_extractor = NewsDatesExtractor(morph_vocab)

text = "book me for next Friday at 3 PM"
for match in dates_extractor(text):
    print(match.fact)  # DateFact(year=2024, month=1, day=19, hour=15, minute=0)

If using Dialogflow, it has built-in system entities @sys.date, @sys.time, @sys.date-time that work for Russian. For Rasa, use the duckling extractor run as a separate HTTP service.

After time parsing: query available slots from the booking system, offer the nearest slots to the requested time.

Library Russian Language Extraction Accuracy Integration Complexity
Natasha Excellent High (dates, times) – 95%+ Medium (requires Python)
Dialogflow Built-in entities Medium (depends on training) Low (SaaS)
Rasa + Duckling Via Duckling Medium (dates) High (server setup)

Booking Bot Development Integration Guide

  1. Choose a library for your stack: Natasha for Python, Dialogflow for any language via REST, Rasa for offline solutions.
  2. Set up date/time extractor. For Dialogflow, just enable system entities.
  3. Write an adapter for your scheduling system that accepts recognized dates and returns available slots.
  4. Implement two-phase booking to eliminate conflicts.
  5. Test with real dialogues—especially vague formulations.

Our experience shows that NLP parsing is 5x faster than manual calendar time selection. Standard Natasha tokenizer achieves date extraction accuracy above 95%.

Integration with the Scheduling System

The bot works via the scheduling system's API. Popular options in the CIS region: 1C:Enterprise (medicine, services), YCLIENTS (beauty), Calendly API, Google Calendar API, custom systems.

For Google Calendar:

const { google } = require('googleapis');
const calendar = google.calendar({ version: 'v3', auth });

async function getAvailableSlots(serviceId, date) {
  const freebusy = await calendar.freebusy.query({
    requestBody: {
      timeMin: dayjs(date).startOf('day').toISOString(),
      timeMax: dayjs(date).endOf('day').toISOString(),
      items: [{ id: serviceCalendarId }]
    }
  });
  // Compute free slots between busy ones
  const busySlots = freebusy.data.calendars[serviceCalendarId].busy;
  return computeFreeSlots(busySlots, workingHours, serviceDuration);
}
System API Access Authorization Special Notes
Google Calendar freebusy/events OAuth 2.0 Requires Service Account
YCLIENTS REST API Key 1000 requests/day limit
1C HTTP Service HTTP Auth Custom data format

What If a Slot Is Taken?

It's crucial to handle race conditions: a slot becomes occupied between when the bot offers it and when the user confirms. Solution—two-phase booking: temporary reservation for 3-5 minutes when showing the slot, confirmation locks it.

This ensures two users cannot book the same time. We use optimistic locking with timeouts. In practice, this approach reduces booking conflicts by 95%.

Bot UI for Booking

Text dialogue is supplemented with inline components:

Horizontal date scroll—when the user didn't specify a date, show the next 7 days as chips. Tap on a date—request slots for that day.

Time grid—available slots displayed as buttons in a grid, occupied ones as disabled. On Android, use FlexboxLayout with dynamically added chip buttons. On iOS, use UICollectionView with compositional layout. Users select a slot in an average of 3 taps.

Confirmation card—master, service, date/time, duration. Buttons "Confirm" and "Change".

Reminders

After successful booking, the bot schedules a reminder. Options:

  • Push notification 24 hours and 2 hours before—via FCM/APNs (reaches 95% of users)
  • SMS via Twilio or SMS.ru (100% reach, cost ~$0.03 per SMS)—for users who disabled pushes
  • Add to device system calendar—EventKit on iOS, CalendarContract on Android (80% reach, free)

The user selects the method when confirming the booking.

What's Included in the Work

  • Analysis of the target scheduling system and its API documentation
  • Development of NLP logic for time and slot parsing
  • Server side: dialogue state machine, calendar integration, slot reservation
  • Mobile UI: inline date/time selection components, confirmation card
  • Testing with real edge cases: all slots occupied, working/non-working days, midnight transitions
  • Reminders: push, SMS, calendar
  • Detailed documentation: API integration guide, bot logic overview
  • Source code delivery with version control
  • 1 month of post-launch support and bug fixes
  • Training session for your team (up to 2 hours)

We guarantee on-time delivery and satisfaction. Our experience: more than 50 completed projects integrating with YCLIENTS, 1C, Google Calendar, Calendly. Over 5 years we develop mobile applications with booking features. Typical clients see a 40% reduction in no-shows, saving an average of $800 per month. We'll estimate your project in one day—contact us for a consultation. To start the project, order a preliminary assessment—we'll analyze your system and propose a solution.

Booking Bot Development Timelines

Booking bot with basic NLP and Google Calendar API + mobile UI—1-2 weeks. With custom scheduling system, multiple masters/services, SMS reminders—3-4 weeks.

Cost starts from $2,500 for a basic booking bot. Ready to discuss your project? Get an estimate and recommendations for integrating the bot into your application.

Machine Learning in Mobile Apps: CoreML, TFLite, and On-Device Models

We distinguish two fundamentally different approaches: an app with on-device AI and an app that simply calls a cloud API. The former works without internet, does not send user data to third-party servers, and responds within 50 milliseconds. The latter depends on network latency and pricing plans. Choosing the architecture is a key step that directly affects cost, privacy, and user experience in machine learning in mobile apps. Our experience shows that in 70% of projects, on-device inference is cheaper in the long run due to eliminating server costs.

How to Choose Between CoreML and TFLite for On-Device Inference?

CoreML — Apple's native framework for running ML models on device. Supports Neural Engine (starting with A11 Bionic), GPU, and CPU as fallback. Models are converted to .mlmodel format via coremltools from PyTorch, ONNX, or TensorFlow. Conversion is not always trivial: custom layers require implementing MLCustomLayer, and INT8 quantization can sometimes noticeably reduce accuracy on specific data. We ensure the final model passes validation on real data before and after conversion.

TensorFlow Lite — cross-platform alternative for Android and Flutter. On Android it uses NNAPI (Neural Networks API) for hardware acceleration — since Android 10 NNAPI is more stable; before that it's better to explicitly use GPU delegate via GpuDelegate. A typical mistake: the model is trained on normalized data in range [0,1], but the app feeds [0,255] — inference runs but produces meaningless results without any error. We include an automatic input data validation module in the SDK.

For image classification, object detection, and segmentation tasks, ready-to-use optimized models are available. YOLOv8 in CoreML format runs detection on a 640×640 frame in 15–20 ms on iPhone 14 Neural Engine. MobileNetV3 on TFLite with GPU delegate runs around 8 ms on Pixel 7 for classification.

Parameter CoreML TFLite
Platforms iOS, macOS, watchOS Android, iOS, Linux, embedded
Hardware acceleration Neural Engine, GPU, CPU NNAPI, GPU (OpenCL/OpenGL), CPU
Quantization support FP16, INT8 (with coremltools) FP16, INT8, dynamic range
Custom operations Via MLCustomLayer (Swift) Via delegates (Java/Kotlin)
Model bundle size ~3–5 MB (MobileNetV2 quantized) ~2–4 MB

What If You Need Text Generation On-Device?

Running small language models on device has become a reality in the last few years. Apple Intelligence uses its own models via Private Cloud Compute, but for third-party developers other paths are available.

llama.cpp with Metal backend on iOS is a working approach for phi-3-mini (3.8B parameters, 4-bit quantization, ~2.3 GB). Inference: 15–25 tokens/second on iPhone 15 Pro. For integration in Swift, use the Swift Package llama.swift or a wrapper via C interface llama.h. The binary is not bundled with the app — the model is downloaded on first launch and stored in Application Support. Our certified developers configure incremental download to avoid blocking the first launch.

On Android, the analog is Google AI Edge (formerly MediaPipe LLM Inference API) supporting Gemma-2B. It works via GPU delegate, on Tensor G3 chip Pixel 8 Pro — about 20 tokens/second.

Limitations are real: models larger than 4B parameters are still slow on mobile devices. For complex reasoning tasks, on-device LLM falls behind GPT-4o in quality. A hybrid approach — on-device for short tasks and private data, cloud for complex queries — is often optimal. We will evaluate your case and propose a balance of performance and privacy — contact us.

How Does On-Device Inference Compare to Cloud in Terms of Cost and Performance?

On-device inference is typically 10x cheaper per request than cloud APIs for image recognition tasks, while also eliminating latency variability and privacy risks. The table below summarizes the trade-offs.

Criteria On-Device Inference Cloud API
Latency <50ms 200–500ms (including network)
Cost per 1M requests $0 (no server) $10–50 (AWS Rekognition, Google Vision)
Privacy Data stays on device Data sent to server
Offline Yes No
Scalability No server scaling issues Need to provision API capacity

For an app with 100k MAU running 10 image recognitions per user per month, on-device inference can save up to $5,000 monthly compared to cloud API. Get a free consultation on your ML architecture today.

Integrating OpenAI API and Other Cloud Models

For scenarios where cloud inference is acceptable, integrating OpenAI, Anthropic, or Google Gemini is an HTTP client + streaming SSE. In Swift, AsyncThrowingStream is convenient for streaming responses. In Kotlin, use Flow.

Critically: API keys must never be stored in the app bundle. Even an obfuscated key can be extracted from the IPA in 10 minutes using strings or frida. Correct architecture: mobile app → your own backend → OpenAI API. The backend controls rate limiting, logs requests, and protects the key.

What Is Included in the Work (Deliverables)

  • Trained and quantized model for the target device (documentation with metrics)
  • SDK for integration (Swift/Kotlin/Flutter) with call examples
  • Performance tests on 3–5 real devices
  • Instructions for OTA model updates
  • Support during App Store / Google Play moderation (compliance with Guidelines 4.2, 5.1)
  • 2 weeks of technical support after release

Typical Project Pipeline

  1. Task analysis — measure latency, privacy, size, supported devices.
  2. Model prototyping — in Python, evaluate accuracy on target data.
  3. Conversion and quantization — for CoreML/TFLite with validation.
  4. Integration into the app — model wrapped in a service layer (easy to swap CoreML ↔ TFLite ↔ cloud).
  5. Testing — on real devices, measure FPS, RAM, battery.
  6. Deployment — via TestFlight / Firebase App Distribution, monitor metrics.

Timelines: integration of a ready CoreML/TFLite model — 1–2 weeks, development of a custom model with mobile optimization — from 6 weeks, on-device LLM chat with personalization — 4–8 weeks.

Why We Take on Complex Cases?

10+ years of experience in mobile development, 50+ implemented AI/ML solutions, guarantee of compatibility with current iOS and Android versions. All projects undergo code review and load testing. The cost includes preparation of moderation documentation and training of your team.

Contact us — we will help you choose the architecture and implement ML in your app turnkey. Order an audit of your existing solution — we will assess the potential for server cost savings free of charge. In some projects, savings can reach significant amounts per month.