MARKETPLACE
PLUGINS
ADD TO CALENDAR BUBBLE MOBILE
Add to Calendar Bubble Mobile logo

Add to Calendar Bubble Mobile

Published August 2026
   •    Updated this week

Plugin details

Put an event straight into the phone's own calendar — Apple Calendar, Google Calendar or Outlook — with repeats, a reminder, location and notes. No account to connect, no API key, nothing uploaded.
▶ Live demo: https://emrejsx.bubbleapps.io/version-test/api/1.1/mobile/preview?debug_mode=true&preview_view=calendar
✎ Open in the editor: https://bubble.io/page?id=emrejsx&app_type=mobile&tab=Design&name=calendar&type=page&elements=bTGSS

⚡ Main Functions

Writes to the calendar the user already has.
   The event opens in Apple Calendar, Google Calendar or Outlook — whichever the phone uses. Nothing to connect.
Timed and all-day events.
   A one-hour meeting or a three-day trip, from the same element.
Repeats and reminders.
   Every weekday, every other Tuesday, the 1st of each month — plus an alert any number of minutes ahead.
Driven by your own buttons.
   Use the built-in button, or hide it and fire the action from any workflow, including inside a repeating group.

⚡ Key Features

📅 Real calendar entries, not reminders
     The event lands in the user's calendar with its title, time, location, notes and link intact. It syncs to their laptop and watch like any other event, because it is one.

🔁 Repeat rules that calendars understand
     Daily, weekly on chosen days, every N weeks, monthly on a date, yearly — or stop after N times or on a given date. Standard rules, so every calendar app reads them the same way.

⏰ A reminder that actually fires
     Set an alert 10 minutes, an hour or a day ahead. The phone handles it — no push notification service, no server, no scheduled workflow burning workload units.

🌍 Time zones handled for you
     Times are written in UTC and shown in the user's local time. A booking made in Istanbul shows correctly for a user in Berlin.

📍 Location that opens a map
     Phones turn the location into a tappable map link, so the user gets directions from the event itself.

🔗 A link that travels with the event
     Attach the meeting URL, the booking page or the ticket. It sits in the event, ready when they need it.

🧩 One element for a whole list
     Hide the button and every field can be passed on the action instead. A single invisible element serves an entire repeating group — one "Add to calendar" button per row, no duplicated elements.

🎨 Your button, your design
     Label, background colour, text colour and corner radius are all yours. Or turn the button off entirely and use your own.

🛟 Errors you can see
     If something is missing, the button says so on screen and the reason is published to a state you can read in a workflow. No silent failures.

📱 What you can build with it

Bookings and appointments. The single cheapest way to cut no-shows: the appointment sits in the customer's own calendar with a reminder attached.
Classes and courses. A weekly repeat rule puts the whole term in one tap.
Delivery and pickup windows. The customer knows when to be home, and their phone reminds them.
Events and tickets. The same "Add to calendar" flow people already know from ticketing sites.
Shift rotas. Staff add their week from a list, each shift with its own reminder.
Renewals and deadlines. Subscriptions, insurance, inspections — a reminder a day ahead.

🧩 What is included

Fields. Title · Start date · End date · Start and end date as text · All day · Location · Notes · Link · Repeat rule · Reminder minutes before · Show button · Button label · Button colour · Text colour · Corner radius
State. Last error
Events. The event is handed to the calendar · An error occurs
Action. Add to calendar — every field can be set per call, so one element serves a whole list

🔒 No accounts, no keys, no server

Nothing is uploaded and nothing is stored. The event is built on the device and handed to the operating system, the same way airlines and ticket sites do it. There is no Google or Microsoft sign-in to configure, no API key to buy, no per-event cost, and no calendar permission prompt to explain to your users.

⚠️ Good to know

The user confirms the event in their calendar app — that final tap belongs to them, which is exactly why no calendar permission is needed. Dates you pass carry their own time zone, so pass a real date rather than a text field where you can. Native mobile only; for web apps use a web calendar plugin.

$19

One time  •  Or  $5/mo

stars   •   0 ratings
0 installs  
This plugin does not collect or track your personal data.

Platform

Native mobile

Contributor details

Emre Yılmaz logo
Emre Yılmaz
Joined 2026   •   5 Plugins
View contributor profile

Instructions

SETUP
1. Drop the "Add to Calendar" element on a native mobile page.
2. Set Title and Start date, or leave them empty and pass them on the action.
3. Preview and tap the button.

SETTING THE DATE
Bubble has no static date picker for plugin fields, so Start date takes a dynamic
expression — Current date/time, or a date from your database.

Do not add ":formatted as" to it. That operator turns a date into text, and the editor
will report "Start date should be date but right now it is a text". Leave the expression
as a plain date.

To try it quickly, or when dates arrive from an API as text, use "Start date as text" and
type 2026-09-03T14:00:00. It is read only when Start date is empty.

If End date is empty the event lasts one hour, or one day when All day is ticked.

YOUR OWN BUTTON
Untick "Show button" and the element becomes invisible and takes no space. Then:
Element Actions > Add to Calendar A > Add to calendar. Every field on the action is
optional and falls back to the element, so one invisible element can serve a whole
repeating group.

REPEAT RULES
 FREQ=DAILY
 FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR      every weekday
 FREQ=WEEKLY;BYDAY=TU;INTERVAL=2       every other Tuesday
 FREQ=MONTHLY;BYMONTHDAY=1             the 1st of every month
 FREQ=WEEKLY;COUNT=8                   eight weeks then stop
 FREQ=DAILY;UNTIL=20261231T000000Z     until a date
Leave empty for a one-off event.

REMINDER
Minutes before the event. 10 for a nudge, 1440 for the day before. Empty means none.

TROUBLESHOOTING
The button turns red and shows the reason; the same text is in the Last error state.
Almost always it is a missing or invalid Start date.

DEMO
Live demo:   https://emrejsx.bubbleapps.io/version-test/api/1.1/mobile/preview?debug_mode=true&preview_view=calendar
Demo editor: https://bubble.io/page?id=emrejsx&app_type=mobile&tab=Design&name=calendar&type=page&elements=bTGSS

Types

This plugin can be found under the following types:
Element   •   Event   •   Action

Categories

This plugin can be found under the following categories:

Resources

Support contact
Tutorial

Rating and reviews

No reviews yet

This plugin has not received any reviews.
Bubble