Das erste Einholen von Informationen eines potentiellen Kunden übers Netz geschieht vielfach ausserhalb von Geschäftszeiten oder eventuell auch schnell während der Arbeitszeit. Er kann also nicht sofort zurückgerufen werden oder hat auch nicht die Zeit ein langes Kontaktformular auszufüllen, soll aber trotzdem mit dem Anbieter in Kontakt bleiben und sogar schon einen Termin vereinbaren können. Dies mit dem Zweck neue Kunden zu gewinnen.
Durch die neuen Web2 Anwendungen wie Social Networking bekommen online Termine immer mehr Gewicht im Dienstleistungs-Marketing. Zum Beispiel über prominente „jetzt Termine wählen“- Buttons auf Dienstleister-Webpages, in E-Mail-Newslettern und in Skyscrapern werden den Kunden Termine vermittelt, dies tageszeitunabhängig und exakt dann, wenn der Kunde in der Stimmung ist.
Immer mehr werden online Termine für Veranstaltungen wie Kurse, Vorträge, Feste, etc. genutzt. Durch den Umstand, dass online Termine über einen Link aufrufbar sind, können sie in Social Networks an Freunde weiterempfohlen werden. Der Trend geht soweit, dass Termine in Zukunft auch in Suchmaschinen auffindbar sein werden.
Christoph Müller
Online Marketing bekommt immer mehr Gewicht. Junge sowie auch ältere Kunden informieren sich je länger je mehr über das Internet. Um potentiellen Kunden die Kontaktaufnahme über das Internet zu erleichtern, haben wir Ida, den online Terminvereinbarungs-Service, entwickelt.
Das erste Einholen von Informationen eines potentiellen Kunden übers Netz geschieht vielfach ausserhalb von Geschäftszeiten oder eventuell auch schnell während der Arbeitszeit. Er kann also nicht sofort zurückgerufen werden oder hat auch nicht die Zeit ein langes Kontaktformular auszufüllen.
Hier kommt Ida, die online Terminvereinbarung zum Zug. Der potentielle Kunde trifft bei der Internetsuche auf die gewünschte Dienstleistung, sieht den grossen Button „jetzt Termin wählen“, macht einen Klick und hat die verfügbaren Termine des Unternehmens vor sich. Jetzt kann er in Ruhe einen Termin wählen. Und schon hat die Unternehmung einen neuen Kunden gewonnen!
Christoph Müller
I programmed a ICalendar feed that can be included in almost every Scheduling App. After a short reserach it was failry easy to do that. The user just has to enter extend the Feed URL with his username and pass to get his appointments.
I created a custom servlet, connected it to the seam context and then I am creating the feed with ical4j.
Servlet for feeding the appointments:
package org.domain.ida.servlet;
import java.io.IOException; import java.io.PrintWriter; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.persistence.EntityManager; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.fortuna.ical4j.data.CalendarOutputter; import net.fortuna.ical4j.model.Calendar; import net.fortuna.ical4j.model.DateTime; import net.fortuna.ical4j.model.ValidationException; import net.fortuna.ical4j.model.component.VEvent; import net.fortuna.ical4j.model.property.Attendee; import net.fortuna.ical4j.model.property.CalScale; import net.fortuna.ical4j.model.property.Description; import net.fortuna.ical4j.model.property.DtEnd; import net.fortuna.ical4j.model.property.Organizer; import net.fortuna.ical4j.model.property.ProdId; import net.fortuna.ical4j.model.property.Uid; import net.fortuna.ical4j.model.property.Version; import org.domain.ida.entity.Reservation; import org.jboss.seam.Component; import org.jboss.seam.servlet.ContextualHttpServletRequest; public class Calfeed extends HttpServlet{ EntityManager entityManager; public void doGet(final HttpServletRequest request, final HttpServletResponse response) throws IOException, ServletException { new ContextualHttpServletRequest((HttpServletRequest)request) { public void process() throws ServletException, IOException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; entityManager = (EntityManager)Component.getInstance("entityManager"); // Get the value of a request parameter; the name is case-sensitive String name = "userloginpass"; String value = req.getParameter(name); // The following generates a page showing all the request parameters PrintWriter out = resp.getWriter(); String[] lp = value.split(":"); List res =(List<Reservation>)(entityManager.createQuery("select r FROM Reservation r, Appointment a where r.appointment.appointmentId = a.appointmentId and a.user.email = :umail and a.user.password = :upass") .setParameter("umail", lp[0]).setParameter("upass", lp[1]).getResultList()); final Calendar calendar = new Calendar(); calendar.getProperties().add(new ProdId("-//Ben Fortuna//iCal4j 1.0//EN")); calendar.getProperties().add(Version.VERSION_2_0); calendar.getProperties().add(CalScale.GREGORIAN); final List events = new ArrayList(); for (Iterator i = res.iterator(); i.hasNext();) { final Reservation entry = (Reservation) i.next(); final VEvent event = new VEvent(new DateTime(entry.getAppointment().getStartTime()), entry.getAppointment().getName()); event.getProperties().add(new DtEnd(new DateTime(entry.getAppointment().getEndTime()))); event.getProperties().add(new Description(entry.getAppointment().getShortDescription())); event.getProperties().add(new Uid("IDA"+entry.getReservationId())); //If wrong data, do nothing try { event.getProperties().add(new Attendee("ROLE=ATTENDEE;CN="+entry.getUser().getName()+" "+entry.getUser().getLastname()+";MAILTO="+entry.getUser().getEmail())); } catch (URISyntaxException e) { } events.add(event); } calendar.getComponents().addAll(events); resp.setContentType("text/calendar"); final CalendarOutputter output = new CalendarOutputter(); try { output.output(calendar, out); } catch (ValidationException e) { // TODO Auto-generated catch block e.printStackTrace(); } out.close(); } }.run(); } }
My web.xml looks like this:
<servlet>
<servlet-name>Feed Servlet</servlet-name>
<servlet-class>org.domain.ida.servlet.Calfeed</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Feed Servlet</servlet-name>
<url-pattern>/feed.do</url-pattern>
</servlet-mapping>
We start the blog with the announcement that our first beta is out. You can test it under: http://75.101.131.104/ida/
We will now continue to post our experiences developing this software on this blog.



