106 votes

Comment créer un lien pour ajouter une entrée à un calendrier ?

Je travaille pour une boîte de nuit et je suis en train de créer un site web pour eux, ils ont beaucoup d'événements et leur site est construit autour des événements, aujourd'hui ils font un événement facebook de chaque événement mais ce serait génial d'avoir un bouton "Ajouter à mon calendrier" qui ajouterait l'événement à votre iCal ou Google Calendar (ou peut-être même Outlook).

J'ai réussi à comprendre comment faire un flux de calendrier mais il sera ajouté comme un nouveau calendrier, la seule bonne chose est que les gens peuvent "s'abonner aux événements" mais c'est assez désordonné d'avoir un calendrier pour chaque événement. J'aimerais donc savoir comment implémenter une fonction qui leur permette de l'ajouter facilement à leur calendrier principal. Je pense à un lien mailto : mais pour les calendriers, si c'est possible.

Et tant que j'y suis, quelqu'un sait-il s'il est possible d'importer automatiquement un événement de Facebook vers WordPress ou d'exporter un événement de WordPress vers Facebook ? Ce serait génial, mais ce n'est pas si important.

0voto

oblig Points 1075

L'avantage d'un abonnement à votre calendrier d'événements, comme vous le dites, est que vous pouvez modifier les dates/heures/informations et qu'elles devraient être répercutées sur vos abonnés. Pourquoi créez-vous un calendrier distinct pour chaque événement au lieu d'un seul ?

Connaissez-vous les API de Google Calendar et de Facebook ?

En ce qui concerne la dernière question, avez-vous l'intention de maintenir deux flux d'événements distincts sur Wordpress et Facebook ? Wordpress pourrait récupérer le flux de Facebook. Peut-être une sorte de CMS événementiel qui publie sur Facebook puis met à jour le flux Wordpress ?

0voto

Si vous cherchez quelque chose de très simple, vous pouvez utiliser ce widget. http://addthisevent.com/ . Cela fonctionne très bien et c'est simple à mettre en œuvre. Je sais que c'est vieux mais c'est juste si quelqu'un cherche.

0voto

jerald jacob Points 51

Vous pouvez générer un fichier ics contenant les informations relatives à la réunion.

Le fichier ics se présente comme suit

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Michael Angstadt//biweekly 0.6.4//EN
METHOD:REQUEST
BEGIN:VEVENT
UID:c7a913c7-3276-4828-8606-b841f2870475
DTSTAMP:20220519T070000Z
SUMMARY: Booking you for this date
DESCRIPTION:You having been invited to the event 
DTSTART:20220519T070000Z
DURATION:PT1H
ORGANIZER;CN=Company Team:mailto:info@XXXXXX.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN=Not Amazing Attendee:mailto:*********@gmail.com
END:VEVENT
END:VCALENDAR

Le code Java pour générer le fichier ics est également disponible ici.

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

public class iCal {

    private String version = "VERSION:1.0 \n";
    private String prodid = "PRODID://Elara/lofy/tanare/delp/314sum2015// \n";
    private String calBegin = "BEGIN:VCALENDAR \n";
    private String calEnd = "END:VCALENDAR \n";
    private String eventBegin = "BEGIN:VEVENT \n";
    private String eventEnd = "END:VEVENT \n";

    public void iCal() {
    }

    public static void main(String[] args) {

    }

    public void write(String name) {
        StringBuilder builder = new StringBuilder();
        builder.append(name);
        builder.append(".ics");

        String testExample = "UID:uid1@example.com\\nDTSTAMP:19970714T170000Z\\nORGANIZER;\n"
                + "    CN=John Doe:MAILTO:john.doe@example.com\\nDTSTART:19970714T170000Z\n"
                + "    \\nDTEND:19970715T035959Z\\nSUMMARY:Bastille Day Party\\n";

        try {

            File file = new File(builder.toString());

            // if file doesnt exists, then create it
            if (!file.exists()) {
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(calBegin);
            bw.write(version);
            bw.write(prodid);
            bw.write(eventBegin);
            bw.write(testExample);
            bw.write(eventEnd);
            bw.write(calEnd);

            bw.close();

            System.out.println("Done");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

-3voto

fishcx Points 54

Vous pouvez demander au programme de créer une version .ics (iCal) du calendrier, puis d'importer cette version .ics dans le programme de calendrier de votre choix : Google, Outlook, etc.

Je sais que cet article est assez ancien, je ne prendrai donc pas la peine d'entrer un code. Mais n'hésitez pas à commenter si vous souhaitez que je vous fournisse un aperçu de la marche à suivre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X