How to create a personal calendar with WordPress

19 Apr 2017 14:00 | Geplaatst door Marcel |

For the last few years I have used Owncloud, which is a full-featured hosting solutions for files, contact, calender, etc. It turned out I only use the calendar part of it, and found the complexity of that full suite a bit too much. Upgrading always gave me issues. I was planning to switch to Nextcloud, which is basically the same thing, but I decided against that. If I am switching anyway, I could just as well switch to something more to the point and with simplicity included.

First I played with a real calendering server, Radicale. I combined that with a web GUI in the form of AgenDAV. Both simple implementations and seemingly what I wanted. But I had some integration issues, not everything worked right, like moving items to a different day, or editing an existing item.

So I started looking for a WordPress solution. All I need in a calendar solution is:

  • Simple interface per month with tiles for each day.
  • Frontend editing.
  • Only one user.
  • Each item has just a day and title. A color per category would be a nice extra.
  • Authentication with a user/password form.

What I do not need:

  • Multiple users.
  • Public or shared calendars.
  • Contacts.
  • Vcards, caldav, ical integration.
  • Shared files.

Plugins

I found the Calendar Event Multi View plugin to best fit my needs. You can easily add a shortcode with a calendar to a page, in my case the frontpage of the site. It is also easy to enable frontend editing. It just works the way I was looking for.

Theme

The theme I made a child theme for was Twenty Sixteen. I called it Personal Calendar and it is available on Codeberg. It has some custom CSS and adds a grey Calendar color scheme to Twenty Sixteen.
The page template has a login form for non-logged-in users, and after login shows the calender.
Everything else has been stripped from the templates and it is all simply aimed at being a good calender theme.

Result

The result is just a one page design with a calendar on the frontend of that site. It lives on a personal subdomain.

screenshot of personal calender
screenshot of personal calender