Evently is a Java-based Telegram bot engineered for seamless, intelligent, and secure event management. Leveraging Google Gemini for natural language understanding, Google Calendar API for scheduling, and Supabase Postgres for persistent user authorization, Evently delivers a frictionless and robust experience for real users.
-
Natural Language Event Extraction
Forward or send event details as plain textβEvently uses the Google Gemini API to extract structured data (date, time, location, description) from unstructured messages. -
Automated Google Calendar Integration
Parsed events are instantly added to your Google Calendar using the Google Calendar API. -
Persistent User Authorization with Supabase Postgres
- Securely stores user authorization details (Telegram ID, OAuth tokens, session info).
- One-time authorization: users donβt need to reauthorize on every interaction.
- Utilizes Supabase Auth and Row Level Security (RLS) for data privacy.
-
Secure Credential Handling
- All API keys and secrets are managed via a
.env
file (excluded from version control). .env.example
provided for easy setup.
- All API keys and secrets are managed via a
-
Modular Java Architecture
- Easily extensible for features like reminders, event updates, or calendar sharing.
Component | Technology |
---|---|
Core Application | Java |
Telegram Bot Integration | Telegram Bot Java Library |
AI Event Extraction | Google Gemini API |
Calendar Integration | Google Calendar API (Java Client) |
Persistent Storage/Auth | Supabase Postgres + Supabase-Java Library |
Environment Management | dotenv-java |
- User Onboarding:
- On first interaction, the bot authenticates the user and stores their authorization/session data in Supabase.
- Session Management:
- For subsequent interactions, the bot retrieves credentials from Supabase, bypassing repeated authorization.
- Security:
- All sensitive data is protected using Supabaseβs Row Level Security and best practices for storing tokens and user data.
- Clone the repository
git clone https://github.com/Devansh-sys/Evently.git cd evently-telegram-bot
- Configure Environment Variables
- Copy
.env.example
to.env
and fill in your credentials.
- Install Dependencies
- Use your preferred Java build tool (Maven/Gradle) to install dependencies.
- Run the Bot mvn exec:java
evently-telegram-bot/ β βββ src/ β βββ main/ β β βββ java/ β β βββ resources/ β βββ test/ βββ assets/ β βββ evently-banner.png β βββ evently-demo-1.png β βββ evently-demo-2.png βββ .env.example βββ .gitignore βββ README.md
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.