15

I haven't used Venti, so I can't comment on it. However, I have tried out both Calendars from Top Shelf Craft and Solspace Calendar on a recent project. I started out using Top Shelf Craft Calendars (Solspace Calendar hadn't been released at this point). However, during the project, I switched to Solpsace Calendar which has ended up being used on the final ...


7

You don't need a plugin. Here's some example code from an old project of mine. {% spaceless %} {% set thisPackage = "" %} {% set packageId = craft.request.getSegment(2) %} {% if packageId %} {% set thisPackage = craft.entries.section('packages').id(packageId).find()[0] %} {% endif %} {% set craftAdminId = craft.users.admin('1')...


5

I started using Solspace a couple weeks ago. The GUI is wonderful for content editors that will make use of it. ICS export so you could use it as the primary calendar manager and import the ICS into gcal or ical. The template integration is super easy and there are a number of bootstrapped demo calendar templates included that make extending, learning and ...


5

Thanks to the starter from khalwat I got this working with the following simplified template code. There do seem to be a few variations on what validates and I got a lot of info from http://icalendar.org/ The GEO field doesn't seem to be used by Google calendar or Apple calendar but I'm guessing some calendars out there can use it. {% spaceless %} {% ...


3

Craft won't set the entry variable automatically unless the route matches a particular entry. If you're sharing a template between routes that may or may not correspond to an entry, you need to make sure that var gets set explicitly by you if not automatically by Craft: {% if entry is not defined %} {% set entry = craft.entries.section('myStructure')....


2

Two things, the variable you send in is called calendarId, not id. Also, inside twig code (like the set function), you don't use twig tags, just the variables directly. Try to change the params object to: {% set params = { calendarId: calendarId, dateRangeStart: 'today', dateRangeEnd: '+36 months' } %}


2

Thanks for your reply! We'll look into Solspace Calendar which appears to be very powerful and should fulfil our requirements.


2

I believe: {{ now | date_modify('-1 month') | date('t') }}


1

Unfortunately there currently isn't a built-in way for this to work. It is on the feature requests list for Calendar for future consideration, however.


1

Figured it out. For anyone else seeing this later on: {% set regionCategory = craft.categories.group('eventRegions').slug(region).one() %} {% set month = craft.calendar.month({ relatedTo: regionCategory }) %}


1

Within the context of calendar.month, if you check out the demo templates, we style the beginning and end of multi-day events with the following code: {% if event.multiDay %} {% set classes = classes ~ " multi_day" %} {% set classes = classes ~ (day.containsDate(event.startDateLocalized) ? " first_day") %} {% set classes = classes ~ (day....


1

Instead of doing complicated things with the result of getLastSegment(), can't you just get the 4th segment using getSegment(4)? If the segment you’re interested in is not always in the same position, you could use getSegments() and conditionally grab a part depending on count of segments returned. {% set segments = craft.request.getSegments() %} {% set ...


1

Twig's |trim filter is just a wrapper for PHP's trim() method, which says: Strip whitespace (or other characters) from the beginning and end of a string So in your example, you're telling it to strip all / and 2 from the beginning and end of the given string, which explains the output you're seeing. I think you'll be better off by installing something ...


1

UPDATED RESPONSE... We were finally able to get to the bottom of this and traced the issue down to your site likely having a DateTime field with the handle date, and this was apparently something Craft was choking on. The next version of Calendar will fix this, but you can resolve this by renaming that DateTime field or patch this by looking for this code ...


1

You can get your past entries by month as explained here. Than it's just a matter of displaying them they way you want to.


1

I know this is a while ago, however you could do something like: Default Times: 09:00-18:00 Monday Time: Tuesday Time: Wedneday Time: Thursday Time: 09:00-20:00 Friday Time: Saturday Time: Sunday Time: When listing times check if that day has a specific time, otherwise use the default time. Will save you changing 6 times anytime there is a change in ...


1

You can find info about how to do this in the docs: https://calendars.docs.topshelfcraft.com/guide/events-variable.html#How-it-Works The EventCriteriaModel given by craft.calendars.events is used to query the owner elements from which the event instances are generated. So, in your example above, you can use something like: {% set params = { calendar: '...


1

Thanks for these examples above. To handle an early event start (i.e. 9am) then the time format works only if you have a leading 0 so H instead of G date(“Hi", “UTC")


1

If you can get the original calendar data into a JSON or RSS format, then check out the wonderful Feed Me plugin. It seamlessly handles JSON, RSS, XML, and ATOM formats.


1

Posting comment as answer, since the suggested solution solved it: Pass the IDs as an array instead of comma separated: {% set thisCalendar = [3,2] %}


Only top voted, non community-wiki answers of a minimum length are eligible