Open source · Made in Penang
Janji app icon

Janji

Your Cal.diy bookings, on your phone.

A free, open-source iOS and Android app for self-hosted Cal.diy. I built it to run TechMavie Booking from my phone, because Cal.com's own app only connects to Cal.com's cloud.

How it works

In TestFlight testing now. App Store and Google Play releases come next.

Upcoming bookings in Janji, grouped by day
A booking in Janji with its time, meeting link and attendees
Behind TechMavie Booking

Built for my own bookings first

Every TechMavie consultation is booked on TechMavie Booking, a Cal.diy server I run myself at book.techmavie.digital. Running my own server keeps the bookings in my hands, but it also meant there was no phone app for it. So I made one, and Janji is what tells me about your booking.

  1. STEP 1

    You book a session

    on book.techmavie.digital

  2. STEP 2

    Cal.diy saves it

    on my own server

  3. STEP 3

    A signed webhook

    goes to Janji's relay

  4. STEP 4

    My phone buzzes

    with a Janji notification

  5. STEP 5

    Handled on the go

    confirm, reschedule or cancel

See the consultation options

Consultations cover transit, SG-JB and travel-tech projects.

Your scheduling, on the go

The day-to-day of a Cal.diy server, without opening a laptop.

Every booking, close at hand

Upcoming, unconfirmed, past and cancelled bookings, grouped by day, with search by attendee. Open one for its time, place, people and answers.

Act on requests

Confirm or decline requests, cancel, reschedule to a free slot, mark no-shows, add guests, share a booking or add it to your calendar.

Event types and links

Copy or share booking links, hide or show event types, edit their basics and choose their schedule, and make private links.

Availability

Edit weekly hours, date overrides and time zones, create schedules and choose your default.

Notifications

Get a notification when someone books, asks you to confirm, reschedules or cancels, and choose which of these you want.

No new account

Sign in with an API key from your own server. It stays in your phone's Keychain or Keystore, and only goes to your server.

See it in action

From sign-in to sorted, in under a minute

A walk through Janji on a demo server with made-up bookings:

  1. 1Sign in with your server address and an API key
  2. 2Open a booking: time, meeting link, attendees and answers
  3. 3Confirm a request, which moves it to your upcoming bookings
  4. 4Check an event type and its private links
  5. 5Look over a schedule and its date overrides

A look inside

Screens from a demo server with made-up bookings. Swipe for more.

Janji's welcome screen explaining it works with your own Cal.diy server
What Janji is, on first launch
Upcoming bookings in Janji, grouped by day
Upcoming bookings, grouped by day
A booking in Janji with its time, meeting link and attendees
Who, when, where, and their answers
A booking request in Janji with Confirm and Decline buttons
Requests to confirm or decline
Janji's reschedule screen showing free times to pick from
Move a booking to a free time
Event types in Janji with their booking links
Event types and their links
An event type in Janji with its visibility switch and private links
Visibility and private links
A schedule in Janji with weekly hours and date overrides
Weekly hours and date overrides

How it works

Your phone talks to your server. Nothing in between, except for notifications.

Bookings, event types and availability

Janjion your phone
HTTPS + your API key
Your Cal.diyCal API v2

Everything you see and change goes straight between your phone and your server, through the same API the Cal.diy web app uses. Janji has no server of its own in the middle.

Notifications

Your Cal.diywebhook
RelayCloudflare
Your phonepush

Your server sends a signed webhook to a small relay, which checks it and turns it into a push notification for your phone. The relay can run on your own Cloudflare account too.

Privacy, in plain words

  • No Janji account, no analytics and no ads.
  • Your server's address and your API key stay in the phone's secure storage, and the key is only ever sent to your server.
  • Bookings stay on your server. The app holds them in memory while you use it and doesn't save them on the phone.
  • The notification relay forwards each notification without keeping or logging the booking, and you can run your own.
  • Notifications travel through Expo and Apple's or Google's push service, as every app's notifications do.

Run your own Cal.diy?

Janji works with any self-hosted Cal.diy server that runs Cal API v2.

Cal.diy, self-hosted

There is no hosted version: you run it on a server you manage.

Cal API v2 next to it

A separate Cal.diy service with its own container and Redis.

HTTPS on your domain

With /api/v2 routed to the API, or its own address.

An API key

Created in Cal.diy under Settings → Developer → API keys.

Frequently Asked Questions

Is Janji free?
Yes. Janji is free and open source under the MIT licence, with no ads and no account of its own. The source code is on GitHub.
Does Janji work with a Cal.com account?
No. Janji is made for self-hosted Cal.diy servers. For a Cal.com account, use Cal.com's own app, which connects to Cal.com's cloud.
Is Janji made by Cal.com?
No. Janji is an independent project by TechMavie Digital. It is not made by or affiliated with Cal.com, Inc.
What does my server need?
A self-hosted Cal.diy server with Cal API v2 running next to it and reachable over HTTPS, plus an API key from Settings → Developer → API keys. The setup guide on GitHub shows how to add Cal API v2.
Where does my data go?
Between your phone and your own server. Notifications pass through a small relay that forwards them to Apple's or Google's push service without keeping the booking. You can also run your own relay.
When can I download it?
Janji is in TestFlight testing now. Releases on the App Store and Google Play come next; follow the GitHub repository to hear when.
I got stuck setting up my server. Where can I get help?
Start with the setup guide in the Janji repository, and open an issue on GitHub if something there does not work for you.

Self-hosting Cal.diy?

Janji is free and open source. Star it on GitHub to follow along until it reaches the App Store and Google Play.

TechMavie Digital Services

Business registration no. 202503258894

Made by in Penang. Bookings handled with Janji, my open-source app for self-hosted Cal.diy.

Copyright 2026 TechMavie Digital. All rights reserved.

Privacy Notice

This website uses Plausible, a privacy-focused analytics tool. Your data is anonymized and stored in Nuremberg, Germany. No cookies are used and no personal information is collected. I respect your privacy.