• 0

Most basic calendar for integration with webapp


Question

I'm looking to build a web app purely for my own personal use.  What I want to do is:

  • Show a list of days
  • For each day have a drop-down of 3 options - only 0 or 1 can be selected
  • When selecting an option, store this data to database (date, option chosen)
  • When changing an option (even to the not-set state) store this data to database overriding what was set (date, option chosen)

All the above is simple.  However, here's the bit I don't get yet:

  • When selecting or changing an option - create a calendar event in either iCloud or Alexa calendar to represent the option chosen
  • If an event already exists on that date - delete it and then create a new one

I would prefer this to work with iCloud calendar, but I fear that there's little integration ability here with my chosen language (PHP).

Could I even just output the database content in a relevant format and subscribe to it from iCloud calendar?

Any steering would be useful.  Thanks

4 answers to this question

Recommended Posts

  • 0
  On 12/01/2024 at 19:41, Dick Montage said:

I'm looking to build a web app purely for my own personal use.  What I want to do is:

  • Show a list of days
  • For each day have a drop-down of 3 options - only 0 or 1 can be selected
  • When selecting an option, store this data to database (date, option chosen)
  • When changing an option (even to the not-set state) store this data to database overriding what was set (date, option chosen)

All the above is simple.  However, here's the bit I don't get yet:

  • When selecting or changing an option - create a calendar event in either iCloud or Alexa calendar to represent the option chosen
  • If an event already exists on that date - delete it and then create a new one

I would prefer this to work with iCloud calendar, but I fear that there's little integration ability here with my chosen language (PHP).

Could I even just output the database content in a relevant format and subscribe to it from iCloud calendar?

Any steering would be useful.  Thanks

Expand  

I was hopeful until I read PHP. Maybe something like this for icloud? https://github.com/zubini/php_icloud_calendar

Or alternatively this for Alexa skills: https://github.com/maxbeckers/amazon-alexa-php

----

I know you're probably not looking for alternate languages and I'm not sure how comfortable you are with Python, but a few years ago I started using Django for my web projects instead of PHP and I found it pretty easy to pick up. If you were to consider using that, you could use something like this: https://github.com/jazzband/django-ical or this: https://github.com/picklepete/pyicloud

I'm curious to see how you crest this hurdle so keep us posted!

----

Edit: I reread your post and saw this: "Could I even just output the database content in a relevant format and subscribe to it from iCloud calendar?"

I went to this website to see if I could generate an ics file using basic event information: https://ical.marudot.com/

This is the information I entered regarding the event itself:

image.png.95763628f775583823177a10a06896d4.png

This is the information I entered regarding the feed name:

image.png.fe232d50b0988e2afcfb808054914436.png

The following is the contents of the .ics file it generated:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ical.marudot.com//iCal Event Maker
X-WR-CALNAME:Test Feed Title
NAME:Test Feed Title
REFRESH-INTERVAL;VALUE=DURATION:P1H
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:America/Havana
LAST-MODIFIED:20230407T050750Z
TZURL:https://www.tzurl.org/zoneinfo-outlook/America/Havana
X-LIC-LOCATION:America/Havana
BEGIN:STANDARD
TZNAME:CST
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
DTSTART:19701101T010000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
BEGIN:DAYLIGHT
TZNAME:CDT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
DTSTART:19700308T000000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20240112T204354Z
UID:1705092190603-72779@ical.marudot.com
DTSTART;TZID=America/Havana:20240112T100000
DTEND;TZID=America/Havana:20240112T120000
SUMMARY:Test Event Title
URL:https://test-url.example
DESCRIPTION:Test Description
LOCATION:Test Location
TRANSP:TRANSPARENT
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR

If you could generate an ics file that looks like that, I think you're in business.

Edited by satukoro
  • 0
  On 13/01/2024 at 09:43, Laser said:

Have you looked at fullcalender? it is a robust full featured calendar that is under active dev.

Here is a sample of integrating it in php

PHP Event Calendar using FullCalendar JS Library - CodexWorld

Expand  

This looks interesting, thanks!  And while that's great - I can't subscribe to it from cloud calendars or so on.  Usefully interesting nonetheless though, thanks.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • This DDR5-6400 CL36 32GB RGB RAM that supports both AMD and Intel is only $72 by Sayan Sen Recently, we covered several SSD deals, both internal and external. These include the Crucial X9 Pro and X10 Pro, the P310 2280, and the Samsung 990 EVO Plus. Meanwhile if you are looking for RAM to upgrade your desktop PC or build a new one, the PNY XLR8 Gaming EPIC-X RGB DDR5-6400 Kit can be your go-to choice as it is currently just $72 (purchase link down below). In terms of specs, this dual-RAM kit delivers 32GB of total DDR5 capacity (each module is 16GB) running at 3200 Hz to deliver 6400 MT/s (PC5-51200) at 1.4 volts. Pre-programmed Intel XMP 3.0 and AMD EXPO memory overclocking preset profiles mean you can fire up the kit to its rated speed with a simple BIOS tweak, rather than having to deal with manual timing adjustments. The CAS latency for this DDR5-6400 kit is 36, which is quite tight for a preset profile. Thermal performance is said to be stellar thanks to the aluminum heat spreader, which should help dissipate heat during extended gaming sessions. Additionally, the heat spreader is also said to feature an "embossed pennant design that enhances the overall look and complements the lighting of other components." Speaking of lighting, the included EPIC-X RGB model features ARGB LEDs diffused through a geometric polymer light pipe and allows syncing via Asus Aura Sync, Gigabyte RGB Fusion, MSI Mystic Light, or ASRock Polychrome Sync software. Get the PNY RAM at the link below: PNY XLR8 Gaming Epic-X RGB™ 32GB (2x16GB) DDR5 RAM 6400 CL36-48-48-104 Desktop Memory Kit (MD32GK2D5640036XRGB): $72.24 (Sold and Shipped by Amazon US) (MSRP: $109.99) This Amazon deal is US-specific and not available in other regions unless specified. If you don't like it or want to look at more options, check out the Amazon US deals page here. Get Prime (SNAP), Prime Video, Audible Plus or Kindle / Music Unlimited. Free for 30 days. As an Amazon Associate, we earn from qualifying purchases.
    • Vivaldi 7.5 is out with colorful tab stacks, improved tab menu, and more by Taras Buria Vivaldi Technologies has released a new feature update for the Vivaldi browser. Version 7.5 is now available with some much-requested features by the community, privacy improvements, bug fixes, and other changes. The release is not the biggest one, but it still packs useful changes, such as colorful tab stacks, a reworked tab context menu, and multiple improvements under the hood: Vivaldi now supports colorful Tab Stacks. This feature groups related tabs and helps you keep everything well-organized. Now, besides giving your stacks names, you can assign colors, which makes it easier to find the stack you need. Developers also added a new dialog: right-click a stack, click "Edit Stack," and give it a new name or choose a color. The browser also received a cleaner and better-organized tab context menu. Vivaldi says the new version is more intuitive and easier to use. Another important change is the ability to define a custom DNS provider with support for DNS over HTTPS. Finally, here are some of the under-the-hood improvements in Vivaldi 7.5: Address Bar: Fixed focus weirdness, suggestion hiccups, and dropdown quirks Ad Blocker: Now supports badfilter, strict3p, and strict1p rules Bookmarks & Notes: Better drag-and-drop, with clearer visual feedback Mail & Calendar: Smarter threading, invite handling, and polish throughout Dashboard & Widgets: Layout tweaks, transparency improvements, drag-and-drop goodness Quick Commands: Now shows synced tabs and handles errors more gracefully Settings: UI improvements across the board, from DNS input to workspace rules visibility You can find the complete changelog for Vivaldi 7.5 in a blog post on the official website. If you want to try this highly customizable browser, download it using this link.
    • "While users may say they do not want their data used for personalized ads, Meta believes that without personalization, user experience declines with an almost 800% rise in ads being marked as “irrelevant” or “repetitive”. The ads might be more irrelevant, but it's not like people crave ads in the first place. My user experience with ads isn't better with personalization, because I don't want them there to begin with. So I might as well have non-personalized ads if I am gonna have ads, because then I at least get tracked less, and that makes it a better user experience for me.
    • The fact that they didn't offer a non-personalized ad-supported option, when they were mandated by law, was the final nail in the coffin in my case.
  • Recent Achievements

    • Week One Done
      BeeJay_Balu earned a badge
      Week One Done
    • Week One Done
      filminutz earned a badge
      Week One Done
    • Reacting Well
      SteveJaye earned a badge
      Reacting Well
    • One Month Later
      MadMung0 earned a badge
      One Month Later
    • One Month Later
      Uranus_enjoyer earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      446
    2. 2
      ATLien_0
      161
    3. 3
      +FloatingFatMan
      147
    4. 4
      Nick H.
      65
    5. 5
      +thexfile
      62
  • Tell a friend

    Love Neowin? Tell a friend!