PHPackages                             yudaapratama/inline-keyboard-calendar - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. yudaapratama/inline-keyboard-calendar

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

yudaapratama/inline-keyboard-calendar
=====================================

Inline keyboard calendar telegram bot

v1.0.1(4y ago)145MITPHP

Since Jan 7Pushed 4y ago1 watchersCompare

[ Source](https://github.com/yudaapratama/inline-keyboard-calendar)[ Packagist](https://packagist.org/packages/yudaapratama/inline-keyboard-calendar)[ RSS](/packages/yudaapratama-inline-keyboard-calendar/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)DependenciesVersions (3)Used By (0)

Telegram Bot Inline Keyboard Calendar
=====================================

[](#telegram-bot-inline-keyboard-calendar)

Simple inline keyboard calendar, inspired by [unmonoqueteclea](https://github.com/unmonoqueteclea/calendar-telegram)

Installation
------------

[](#installation)

Use the package manager [composer](https://getcomposer.org/) to install.

```
composer require yudaapratama/inline-keyboard-calendar
```

Usage
-----

[](#usage)

```
use yudaapratama\Calendar\InlineKeyboardCalendar;

//Define Inline Keyboard Calendar
$keyboard = new InlineKeyboardCalendar();

$keyboard->setConfigDate("2022-01"); //Set the date for first show inline keyboard
$keyboard->Calendar();
```

Example
-------

[](#example)

example using [longman](https://github.com/php-telegram-bot/core) library telegram bot.

```
//CalendarCommand.php

namespace Longman\TelegramBot\Commands\SystemCommands;

use Longman\TelegramBot\Commands\SystemCommand;
use Longman\TelegramBot\Entities\ServerResponse;
use Longman\TelegramBot\Entities\InlineKeyboard;
use Longman\TelegramBot\Request;

use yudaapratama\Calendar\InlineKeyboardCalendar;

....

$keyboard = new InlineKeyboardCalendar();

$keyboard->setConfigDate("2022-01");

$inlineKeyboard = new InlineKeyboard(...$keyboard->Calendar());

$format =
[
  'chat_id' => $chatId,
  'message_id' => $callbackMessageId,
  'text' => "Choose a date",
  'reply_markup' => $inlineKeyboard
];

return Request::editMessageText($format);
```

```
//QallbackqueryCommand.php

....

use yudaapratama\Calendar\InlineKeyboardCalendar;

....

list($action, $data) = explode("::", $callbackData);

switch ($action) {
  case 'day': //case when button date is selected
  $format =
    [
      'chat_id' => $callbackChatId,
      'message_id' => $callbackMessageId,
      'text' => "Selected date: " . $data,
      'reply_markup' => $inlineKeyboard
    ];

    return Request::editMessageText($format);
    break;

  case 'ignore': //case when selected except the date
    return $callbackQuery->answer([
        'text'       => 'Oops choose another date.',
        'show_alert' => true,
        'cache_time' => 5,
    ]);
    break;

  case 'prev': //when the prev button pressed

    $keyboard = new InlineKeyboardCalendar();
    $keyboard->setConfigDate($data);
    $keyboar
    $inlineKeyboard = new InlineKeyboard(...$keyboard->Calendar());

    $format =
    [
      'chat_id' => $callbackChatId,
      'message_id' => $callbackMessageId,
      'text' => "Choose a date",
      'reply_markup' => $inlineKeyboard
    ];

    return Request::editMessageText($format);

    break;

  case 'next': //when the next button pressed

    $keyboard = new InlineKeyboardCalendar();
    $keyboard->setConfigDate($data);
    $keyboar
    $inlineKeyboard = new InlineKeyboard(...$keyboard->Calendar());

    $format =
    [
      'chat_id' => $callbackChatId,
      'message_id' => $callbackMessageId,
      'text' => "Choose a date",
      'reply_markup' => $inlineKeyboard
    ];

    return Request::editMessageText($format);

    break;
}
```

License
-------

[](#license)

[MIT](https://choosealicense.com/licenses/mit/)

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

1585d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4242f77ae9c9b080d1c88a986b54ffe115808d962cbfb0437cc4a5958e2eb502?d=identicon)[yudaapratama](/maintainers/yudaapratama)

---

Top Contributors

[![yudaapratama](https://avatars.githubusercontent.com/u/25500738?v=4)](https://github.com/yudaapratama "yudaapratama (7 commits)")

### Embed Badge

![Health badge](/badges/yudaapratama-inline-keyboard-calendar/health.svg)

```
[![Health](https://phpackages.com/badges/yudaapratama-inline-keyboard-calendar/health.svg)](https://phpackages.com/packages/yudaapratama-inline-keyboard-calendar)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
